1*073d9f2cSAleksandar Markovic #include<stdio.h> 2*073d9f2cSAleksandar Markovic #include<assert.h> 3*073d9f2cSAleksandar Markovic main()4*073d9f2cSAleksandar Markovicint main() 5*073d9f2cSAleksandar Markovic { 6*073d9f2cSAleksandar Markovic int dsp, sum; 7*073d9f2cSAleksandar Markovic int result; 8*073d9f2cSAleksandar Markovic 9*073d9f2cSAleksandar Markovic dsp = 0x20; 10*073d9f2cSAleksandar Markovic sum = 0x01; 11*073d9f2cSAleksandar Markovic result = 0x02; 12*073d9f2cSAleksandar Markovic 13*073d9f2cSAleksandar Markovic __asm 14*073d9f2cSAleksandar Markovic ("wrdsp %1\n\t" 15*073d9f2cSAleksandar Markovic "bposge32 test1\n\t" 16*073d9f2cSAleksandar Markovic "nop\n\t" 17*073d9f2cSAleksandar Markovic "addi %0, 0xA2\n\t" 18*073d9f2cSAleksandar Markovic "nop\n\t" 19*073d9f2cSAleksandar Markovic "test1:\n\t" 20*073d9f2cSAleksandar Markovic "addi %0, 0x01\n\t" 21*073d9f2cSAleksandar Markovic : "+r"(sum) 22*073d9f2cSAleksandar Markovic : "r"(dsp) 23*073d9f2cSAleksandar Markovic ); 24*073d9f2cSAleksandar Markovic assert(sum == result); 25*073d9f2cSAleksandar Markovic 26*073d9f2cSAleksandar Markovic dsp = 0x10; 27*073d9f2cSAleksandar Markovic sum = 0x01; 28*073d9f2cSAleksandar Markovic result = 0xA4; 29*073d9f2cSAleksandar Markovic 30*073d9f2cSAleksandar Markovic __asm 31*073d9f2cSAleksandar Markovic ("wrdsp %1\n\t" 32*073d9f2cSAleksandar Markovic "bposge32 test2\n\t" 33*073d9f2cSAleksandar Markovic "nop\n\t" 34*073d9f2cSAleksandar Markovic "addi %0, 0xA2\n\t" 35*073d9f2cSAleksandar Markovic "nop\n\t" 36*073d9f2cSAleksandar Markovic "test2:\n\t" 37*073d9f2cSAleksandar Markovic "addi %0, 0x01\n\t" 38*073d9f2cSAleksandar Markovic : "+r"(sum) 39*073d9f2cSAleksandar Markovic : "r"(dsp) 40*073d9f2cSAleksandar Markovic ); 41*073d9f2cSAleksandar Markovic assert(sum == result); 42*073d9f2cSAleksandar Markovic 43*073d9f2cSAleksandar Markovic return 0; 44*073d9f2cSAleksandar Markovic } 45