OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [or1ksim/] [doc/] [or1ksim.texi] - Diff between revs 104 and 112

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 104 Rev 112
Line 176... Line 176...
@cindex statistics, register over time
@cindex statistics, register over time
@cindex register over time statistics
@cindex register over time statistics
If enabled, this option allows statistics to be collected to analyse
If enabled, this option allows statistics to be collected to analyse
register access over time.  The default is for this to be disabled.
register access over time.  The default is for this to be disabled.
 
 
@item --enable-ov-flag
 
@cindex @code{--enable-ov-flag}
 
@itemx --disable-ov-flag
 
@cindex @code{--disable-ov-flag}
 
@cindex overflow flag setting by instructions
 
If enabled, this option causes instructions to set the overflow
 
flag.  The instructions affected by this are @code{l.add},
 
@code{l.addc}, @code{l.addi}, @code{l.and}, @code{l.andi},
 
@code{l.div}, @code{l.divu}, @code{l.mul}, @code{l.muli}, @code{l.or},
 
@code{l.ori}, @code{l.sll}, @code{l.slli}, @code{l.srl},
 
@code{l.srli}, @code{l.sra}, @code{l.srai}, @code{l.sub}, @code{l.xor}
 
and @code{l.xori}.
 
 
 
The default is for this to be disabled.
 
 
 
@quotation Caution
 
This appears a very dangerous option, to the extent of arguably being
 
a bug.  Whether or not flags are set is part of the OpenRISC 1000
 
architectural specification.  Within the above list, the arithmetic
 
instructions (@code{l.add}, @code{l.addc}, @code{l.addi},
 
@code{l.div}, @code{l.divu}, @code{l.mul}, @code{l.muli} and
 
@code{l.sub}), together with @code{l.addic} which is missed out, set
 
the overflow flag.  All the others (@code{l.and}, @code{l.andi},
 
@code{l.or}, @code{l.ori}, @code{l.sll}, @code{l.slli}, @code{l.srl},
 
@code{l.srli}, @code{l.sra}, @code{l.srai}, @code{l.xor} and
 
@code{l.xori}) do not.
 
 
 
Thus it is impossible to get correct behavior whichever way this option is
 
set.
 
@end quotation
 
 
 
@item --enable-arith-flag
@item --enable-arith-flag
@cindex @code{--enable-arith-flag}
@cindex @code{--enable-arith-flag}
@itemx --disable-arith-flag
@itemx --disable-arith-flag
@cindex @code{--disable-arith-flag}
@cindex @code{--disable-arith-flag}
@cindex flag setting by instructions
@cindex flag setting by instructions
Line 264... Line 233...
This flag is intended for those working on the test package, who wish to
This flag is intended for those working on the test package, who wish to
get the missing test(s) working.
get the missing test(s) working.
 
 
@end table
@end table
 
 
 
A number of configuration flags have been removed since version 0.3.0,
 
because they led to invalid behavior of Or1ksim. Those removed include
 
 
 
@table @code
 
 
 
@item --enable-ov-flag
 
@cindex @code{--enable-ov-flag}
 
@itemx --disable-ov-flag
 
@cindex @code{--disable-ov-flag}
 
@cindex overflow flag setting by instructions
 
This flag used to cause certain instructions to set the overflow flag.
 
If not, those instructions would not set the overflow flat.  The
 
instructions affected by this were @code{l.add}, @code{l.addc},
 
@code{l.addi}, @code{l.and}, @code{l.andi}, @code{l.div}, @code{l.divu},
 
@code{l.mul}, @code{l.muli}, @code{l.or}, @code{l.ori}, @code{l.sll},
 
@code{l.slli}, @code{l.srl}, @code{l.srli}, @code{l.sra}, @code{l.srai},
 
@code{l.sub}, @code{l.xor} and @code{l.xori}.
 
 
 
This guaranteed incorrect behavior.  The OpenRISC 1000 architecture
 
specification defines which flags are set by which instructions.
 
 
 
Within the above list, the arithmetic instructions (@code{l.add},
 
@code{l.addc}, @code{l.addi}, @code{l.div}, @code{l.divu}, @code{l.mul},
 
@code{l.muli} and @code{l.sub}), together with @code{l.addic} which is
 
missed out, set the overflow flag.  All the others (@code{l.and},
 
@code{l.andi}, @code{l.or}, @code{l.ori}, @code{l.sll}, @code{l.slli},
 
@code{l.srl}, @code{l.srli}, @code{l.sra}, @code{l.srai}, @code{l.xor}
 
and @code{l.xori}) do not.
 
 
 
@end table
 
 
@node Build and Install
@node Build and Install
@section Building and Installing
@section Building and Installing
Build the tool with:
Build the tool with:
 
 
@example
@example

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.