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 ach, acl; 7*073d9f2cSAleksandar Markovic int resulth, resultl; 8*073d9f2cSAleksandar Markovic 9*073d9f2cSAleksandar Markovic ach = 0xBBAACCFF; 10*073d9f2cSAleksandar Markovic acl = 0x1C3B001D; 11*073d9f2cSAleksandar Markovic 12*073d9f2cSAleksandar Markovic resulth = 0x17755; 13*073d9f2cSAleksandar Markovic resultl = 0x99fe3876; 14*073d9f2cSAleksandar Markovic 15*073d9f2cSAleksandar Markovic __asm 16*073d9f2cSAleksandar Markovic ("mthi %0, $ac1\n\t" 17*073d9f2cSAleksandar Markovic "mtlo %1, $ac1\n\t" 18*073d9f2cSAleksandar Markovic "shilo $ac1, 0x0F\n\t" 19*073d9f2cSAleksandar Markovic "mfhi %0, $ac1\n\t" 20*073d9f2cSAleksandar Markovic "mflo %1, $ac1\n\t" 21*073d9f2cSAleksandar Markovic : "+r"(ach), "+r"(acl) 22*073d9f2cSAleksandar Markovic ); 23*073d9f2cSAleksandar Markovic assert(ach == resulth); 24*073d9f2cSAleksandar Markovic assert(acl == resultl); 25*073d9f2cSAleksandar Markovic 26*073d9f2cSAleksandar Markovic 27*073d9f2cSAleksandar Markovic ach = 0x1; 28*073d9f2cSAleksandar Markovic acl = 0x80000000; 29*073d9f2cSAleksandar Markovic 30*073d9f2cSAleksandar Markovic resulth = 0x3; 31*073d9f2cSAleksandar Markovic resultl = 0x0; 32*073d9f2cSAleksandar Markovic 33*073d9f2cSAleksandar Markovic __asm 34*073d9f2cSAleksandar Markovic ("mthi %0, $ac1\n\t" 35*073d9f2cSAleksandar Markovic "mtlo %1, $ac1\n\t" 36*073d9f2cSAleksandar Markovic "shilo $ac1, -1\n\t" 37*073d9f2cSAleksandar Markovic "mfhi %0, $ac1\n\t" 38*073d9f2cSAleksandar Markovic "mflo %1, $ac1\n\t" 39*073d9f2cSAleksandar Markovic : "+r"(ach), "+r"(acl) 40*073d9f2cSAleksandar Markovic ); 41*073d9f2cSAleksandar Markovic assert(ach == resulth); 42*073d9f2cSAleksandar Markovic assert(acl == resultl); 43*073d9f2cSAleksandar Markovic 44*073d9f2cSAleksandar Markovic return 0; 45*073d9f2cSAleksandar Markovic } 46