.include "t-macros.i" start ;; The d10v implements negated addition for subtraction .macro check_sub2w s x y r c v ;; clear carry ldi r6,#0x8004 mvtc r6,cr0 ;; load opnds ld2w r6, @(1f,r0) ld2w r8, @(2f,r0) .data 1: .long \x 2: .long \y .text ;; subtract SUB2W r6, r8 ;; verify result ld2w r10, @(1f,r0) .data 1: .long \r .text cmpeq r6, r10 brf0f 2f cmpeq r7, r11 brf0t 3f 2: ldi r4, 1 ldi r0, \s trap 15 3: ;; verify carry mvfc r6, cr0 and3 r6, r6, #1 cmpeqi r6, #\c brf0t 1f ldi r4, 1 ldi r0, \s trap 15 1: .endm check_sub2w 1 0x00000000 0x00000000 0x00000000 1 0 check_sub2w 2 0x00000000 0x00000001 0xffffffff 0 0 check_sub2w 3 0x00000001 0x00000000 0x00000001 1 0 check_sub2w 3 0x00000001 0x00000001 0x00000000 1 0 check_sub2w 5 0x00000000 0x80000000 0x80000000 0 1 check_sub2w 6 0x80000000 0x00000001 0x7fffffff 1 1 check_sub2w 7 0x7fffffff 0x7fffffff 0x00000000 1 0 exit0