39 lines
892 B
ArmAsm
39 lines
892 B
ArmAsm
|
.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
|