1*073d9f2cSAleksandar Markovic #include<stdio.h> 2*073d9f2cSAleksandar Markovic #include<assert.h> 3*073d9f2cSAleksandar Markovic 4*073d9f2cSAleksandar Markovic int main() 5*073d9f2cSAleksandar Markovic { 6*073d9f2cSAleksandar Markovic int rd, rs, rt, dsp; 7*073d9f2cSAleksandar Markovic int result, resultdsp; 8*073d9f2cSAleksandar Markovic 9*073d9f2cSAleksandar Markovic rs = 0x03FB1234; 10*073d9f2cSAleksandar Markovic rt = 0x0BCC4321; 11*073d9f2cSAleksandar Markovic result = 0xF504F4B4; 12*073d9f2cSAleksandar Markovic resultdsp = 1; 13*073d9f2cSAleksandar Markovic 14*073d9f2cSAleksandar Markovic __asm 15*073d9f2cSAleksandar Markovic ("mul.ph %0, %2, %3\n\t" 16*073d9f2cSAleksandar Markovic "rddsp %1\n\t" 17*073d9f2cSAleksandar Markovic : "=r"(rd), "=r"(dsp) 18*073d9f2cSAleksandar Markovic : "r"(rs), "r"(rt) 19*073d9f2cSAleksandar Markovic ); 20*073d9f2cSAleksandar Markovic dsp = (dsp >> 21) & 0x01; 21*073d9f2cSAleksandar Markovic assert(rd == result); 22*073d9f2cSAleksandar Markovic assert(dsp == resultdsp); 23*073d9f2cSAleksandar Markovic 24*073d9f2cSAleksandar Markovic dsp = 0; 25*073d9f2cSAleksandar Markovic __asm 26*073d9f2cSAleksandar Markovic ("wrdsp %0\n\t" 27*073d9f2cSAleksandar Markovic : 28*073d9f2cSAleksandar Markovic : "r"(dsp) 29*073d9f2cSAleksandar Markovic ); 30*073d9f2cSAleksandar Markovic 31*073d9f2cSAleksandar Markovic rs = 0x00210010; 32*073d9f2cSAleksandar Markovic rt = 0x00110005; 33*073d9f2cSAleksandar Markovic result = 0x2310050; 34*073d9f2cSAleksandar Markovic resultdsp = 0; 35*073d9f2cSAleksandar Markovic 36*073d9f2cSAleksandar Markovic __asm 37*073d9f2cSAleksandar Markovic ("mul.ph %0, %2, %3\n\t" 38*073d9f2cSAleksandar Markovic "rddsp %1\n\t" 39*073d9f2cSAleksandar Markovic : "=r"(rd), "=r"(dsp) 40*073d9f2cSAleksandar Markovic : "r"(rs), "r"(rt) 41*073d9f2cSAleksandar Markovic ); 42*073d9f2cSAleksandar Markovic dsp = (dsp >> 21) & 0x01; 43*073d9f2cSAleksandar Markovic assert(rd == result); 44*073d9f2cSAleksandar Markovic assert(dsp == resultdsp); 45*073d9f2cSAleksandar Markovic 46*073d9f2cSAleksandar Markovic return 0; 47*073d9f2cSAleksandar Markovic } 48