Commit | Line | Data |
---|---|---|
c906108c SS |
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 | |
21 | 1: | |
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 | |
30 | 1: | |
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 |