blob: 36161ad852daee9f335abd8cfd7c4f8c4f0b5b0b [file] [log] [blame]
#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;
}