| 1 | #include<stdio.h> |
| 2 | #include<assert.h> |
| 3 | |
| 4 | int main() |
| 5 | { |
| 6 | int rd, rs, rt; |
| 7 | int dsp; |
| 8 | int result; |
| 9 | |
| 10 | rs = 0x0000000F; |
| 11 | rt = 0x00000001; |
| 12 | result = 0x00000010; |
| 13 | __asm |
| 14 | ("addsc %0, %1, %2\n\t" |
| 15 | : "=r"(rd) |
| 16 | : "r"(rs), "r"(rt) |
| 17 | ); |
| 18 | assert(rd == result); |
| 19 | |
| 20 | rs = 0xFFFF0FFF; |
| 21 | rt = 0x00010111; |
| 22 | result = 0x00001110; |
| 23 | __asm |
| 24 | ("addsc %0, %2, %3\n\t" |
| 25 | "rddsp %1\n\t" |
| 26 | : "=r"(rd), "=r"(dsp) |
| 27 | : "r"(rs), "r"(rt) |
| 28 | ); |
| 29 | assert(rd == result); |
| 30 | assert(((dsp >> 13) & 0x01) == 1); |
| 31 | |
| 32 | return 0; |
| 33 | } |