blob: 81faad5ec24a23fdfb2ed6af85ae4d7490b7dd63 [file] [log] [blame]
.include "t-macros.i"
start
;; The d10v implements negated addition for subtraction
.macro check_subi s x y r c v
;; clear carry
ldi r6,#0x8004
mvtc r6,cr0
;; subtract
ldi r10,#\x
SUBI r10,#\y
;; verify result
ldi r11, #\r
cmpeq r10, r11
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_subi 1 0000 0x0000 0xfff0 00 ;; 0 - 0x10
check_subi 2 0x0000 0x0001 0xffff 0 0
check_subi 3 0x0001 0x0000 0xfff1 0 0
check_subi 4 0x0001 0x0001 0x0000 1 0
check_subi 5 0x8000 0x0001 0x7fff 1 1
exit0