For "sub", compute carry by comparing inputs.
Test.
This commit is contained in:
parent
d294a657d5
commit
9d9972a38a
2 changed files with 43 additions and 0 deletions
|
@ -15,6 +15,7 @@ t-msbu.s
|
|||
t-rachi.s
|
||||
t-rep.s
|
||||
t-mulxu.s
|
||||
t-sub.s
|
||||
t-subi.s
|
||||
t-sub2w.s
|
||||
t-mvtac.s
|
||||
|
|
42
sim/testsuite/d10v-elf/t-sub.s
Normal file
42
sim/testsuite/d10v-elf/t-sub.s
Normal file
|
@ -0,0 +1,42 @@
|
|||
.include "t-macros.i"
|
||||
|
||||
start
|
||||
|
||||
;; The d10v implements negated addition for subtraction
|
||||
|
||||
.macro check_sub s x y r c
|
||||
;; clear carry
|
||||
ldi r6,#0x8004
|
||||
mvtc r6,cr0
|
||||
;; subtract
|
||||
ldi r10,#\x
|
||||
ldi r11,#\y
|
||||
sub r10, r11
|
||||
;; verify result
|
||||
ldi r12, #\r
|
||||
cmpeq r10, r12
|
||||
brf0t 1f
|
||||
ldi r6, 1
|
||||
ldi r2, #\s
|
||||
trap 15
|
||||
1:
|
||||
;; verify carry
|
||||
mvfc r6, cr0
|
||||
and3 r6, r6, #1
|
||||
cmpeqi r6, #\c
|
||||
brf0t 1f
|
||||
ldi r6, 1
|
||||
ldi r2, #\s
|
||||
trap 15
|
||||
1:
|
||||
.endm
|
||||
|
||||
check_sub 1 0x0000 0x0000 0x0000 1
|
||||
check_sub 2 0x0000 0x0001 0xffff 0
|
||||
check_sub 3 0x0001 0x0000 0x0001 1
|
||||
check_sub 4 0x0001 0x0001 0x0000 1
|
||||
check_sub 5 0x0000 0x8000 0x8000 0
|
||||
check_sub 6 0x8000 0x0001 0x7fff 1
|
||||
check_sub 7 0x7fff 0x7fff 0x0000 1
|
||||
|
||||
exit0
|
Loading…
Add table
Reference in a new issue