qemu/tests/tcg/mips/mips64-dsp/bposge32.c

51 lines
846 B
C
Raw Normal View History

#include "io.h"
int main(void)
{
long long dsp, sum;
long long result;
dsp = 0x20;
sum = 0x01;
result = 0x02;
__asm
("wrdsp %1\n\t"
"bposge32 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("bposge32 wrong\n");
return -1;
}
dsp = 0x10;
sum = 0x01;
result = 0xA4;
__asm
("wrdsp %1\n\t"
"bposge32 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("bposge32 wrong\n");
return -1;
}
return 0;
}