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 = 0x80001234; 10*073d9f2cSAleksandar Markovic rt = 0x80004321; 11*073d9f2cSAleksandar Markovic result = 0x7FFFAAAB; 12*073d9f2cSAleksandar Markovic 13*073d9f2cSAleksandar Markovic __asm 14*073d9f2cSAleksandar Markovic ("mulq_s.w %0, %1, %2\n\t" 15*073d9f2cSAleksandar Markovic : "=r"(rd) 16*073d9f2cSAleksandar Markovic : "r"(rs), "r"(rt) 17*073d9f2cSAleksandar Markovic ); 18*073d9f2cSAleksandar Markovic assert(rd == result); 19*073d9f2cSAleksandar Markovic 20*073d9f2cSAleksandar Markovic rs = 0x80000000; 21*073d9f2cSAleksandar Markovic rt = 0x80000000; 22*073d9f2cSAleksandar Markovic result = 0x7FFFFFFF; 23*073d9f2cSAleksandar Markovic resultdsp = 1; 24*073d9f2cSAleksandar Markovic 25*073d9f2cSAleksandar Markovic __asm 26*073d9f2cSAleksandar Markovic ("mulq_s.w %0, %2, %3\n\t" 27*073d9f2cSAleksandar Markovic "rddsp %1\n\t" 28*073d9f2cSAleksandar Markovic : "=r"(rd), "=r"(dsp) 29*073d9f2cSAleksandar Markovic : "r"(rs), "r"(rt) 30*073d9f2cSAleksandar Markovic ); 31*073d9f2cSAleksandar Markovic dsp = (dsp >> 21) & 0x01; 32*073d9f2cSAleksandar Markovic assert(rd == result); 33*073d9f2cSAleksandar Markovic assert(dsp == resultdsp); 34*073d9f2cSAleksandar Markovic 35*073d9f2cSAleksandar Markovic return 0; 36*073d9f2cSAleksandar Markovic } 37