42 lines
945 B
ArmAsm
42 lines
945 B
ArmAsm
# mach: all
|
|
# output:
|
|
# sim: --environment operating
|
|
|
|
.include "t-macros.i"
|
|
|
|
start
|
|
|
|
PSW_BITS = PSW_FX|PSW_ST|PSW_SM
|
|
loadpsw2 PSW_BITS
|
|
|
|
;; Test normal sadd
|
|
|
|
loadacc2 a0 0x00 0x7fff 0xffff
|
|
loadacc2 a1 0xff 0x8000 0x0000
|
|
sadd a1, a0
|
|
checkacc2 1 a0 0x00 0x7fff 0xffff
|
|
checkacc2 2 a1 0xff 0x8000 0x7fff
|
|
|
|
;; Test overflow
|
|
|
|
loadacc2 a0 0x00 0x0000 0x0000
|
|
loadacc2 a1 0x01 0x8000 0x0000
|
|
sadd a1, a0
|
|
checkacc2 3 a0 0x00 0x0000 0x0000
|
|
checkacc2 4 a1 0x00 0x7fff 0xffff
|
|
|
|
loadacc2 a0 0x00 0xffff 0xffff
|
|
loadacc2 a1 0x00 0xffff 0xffff
|
|
sadd a1, a0
|
|
checkacc2 5 a1 0x00 0x7fff 0xffff
|
|
checkacc2 6 a0 0x00 0xffff 0xffff
|
|
|
|
;; Test underflow
|
|
|
|
loadacc2 a0 0x00 0x0000 0x0000
|
|
loadacc2 a1 0x80 0x8000 0x0000
|
|
sadd a1, a0
|
|
checkacc2 7 a0 0x00 0x0000 0x0000
|
|
checkacc2 8 a1 0xff 0x8000 0x0000
|
|
|
|
exit0
|