1.include "t-macros.i" 2 3 start 4 5;; The d10v implements negated addition for subtraction 6 7 .macro check_sub s x y r c 8 ;; clear carry 9 ldi r6,#0x8004 10 mvtc r6,cr0 11 ;; subtract 12 ldi r10,#\x 13 ldi r11,#\y 14 sub r10, r11 15 ;; verify result 16 ldi r12, #\r 17 cmpeq r10, r12 18 brf0t 1f 19 ldi r6, 1 20 ldi r2, #\s 21 trap 15 221: 23 ;; verify carry 24 mvfc r6, cr0 25 and3 r6, r6, #1 26 cmpeqi r6, #\c 27 brf0t 1f 28 ldi r6, 1 29 ldi r2, #\s 30 trap 15 311: 32 .endm 33 34check_sub 1 0x0000 0x0000 0x0000 1 35check_sub 2 0x0000 0x0001 0xffff 0 36check_sub 3 0x0001 0x0000 0x0001 1 37check_sub 4 0x0001 0x0001 0x0000 1 38check_sub 5 0x0000 0x8000 0x8000 0 39check_sub 6 0x8000 0x0001 0x7fff 1 40check_sub 7 0x7fff 0x7fff 0x0000 1 41 42 exit0 43