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