| #include "io.h" |
| |
| int main(void) |
| { |
| long long dsp, sum; |
| long long result; |
| |
| dsp = 0x40; |
| sum = 0x01; |
| result = 0x02; |
| |
| __asm |
| ("wrdsp %1\n\t" |
| "bposge64 test1\n\t" |
| "nop\n\t" |
| "addi %0, 0xA2\n\t" |
| "nop\n\t" |
| "test1:\n\t" |
| "addi %0, 0x01\n\t" |
| : "+r"(sum) |
| : "r"(dsp) |
| ); |
| if (sum != result) { |
| printf("bposge64 wrong\n"); |
| |
| return -1; |
| } |
| |
| dsp = 0x10; |
| sum = 0x01; |
| result = 0xA4; |
| |
| __asm |
| ("wrdsp %1\n\t" |
| "bposge64 test2\n\t" |
| "nop\n\t" |
| "addi %0, 0xA2\n\t" |
| "nop\n\t" |
| "test2:\n\t" |
| "addi %0, 0x01\n\t" |
| : "+r"(sum) |
| : "r"(dsp) |
| ); |
| if (sum != result) { |
| printf("bposge64 wrong\n"); |
| |
| return -1; |
| } |
| return 0; |
| } |