University of Minnesota
Computer Engineering
Research Group
Dr. Matthew O'Keefe
Important differences between FAST and dlxsim
Different stack pointer register:
FAST: stack pointer register is r29
dlxsim: stack pointer register is r14
Additional Integer instructions:
divp rX, rY, rZ
Signed integer divide.
divpi rX, rY, #signed immed
Signed immediate integer divide.
divpu rX, rY, rZ
Unsigned integer divide.
divpui rX, rY, #unsigned immed
Unsigned immediate integer divide.
mod rX, rY, rZ
Signed integer modulo.
modi rX, rY, #signed immed
Signed immediate integer modulo.
modu rX, rY, rZ
Unsigned integer modulo.
modui rX, rY, #unsigned immed
Unsigned immediate integer modulo.
mul rX, rY, rZ
Signed integer multiply.
muli rX, rY, #signed immed
Signed immediate integer multiply.
mulu rX, rY, rZ
Unsigned integer multiply.
mului rX, rY, #unsigned immed
Unsigned immediate integer multiply.
Additional Floating Point instructions:
negf fX, fY
Single precision negate (ie,
fX = -fY
)
negd fX, fY
Double precision negate (ie,
fX = -fY
)
Implemented Traps:
...
Additional Assembler Directives:
.proc
label
This directive denotes the beginning of the procedure
label
.
.endproc
[
label
]
This directive denotes the end of a procedure.
Fast execution:
Greater than 2.5 Million instructions/second per processor observed
Supports the simulation of muliproccessor programs via:
fork()
join()
barrier(bar_num,num_bars)
shared memory using shared global variables (see the examples!)
Computer Engineering
Department of Electrical Engineering
University of Minnesota