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 dsp_i, dsp_o; 7*073d9f2cSAleksandar Markovic int ccond_i, outflag_i, efi_i, c_i, scount_i, pos_i; 8*073d9f2cSAleksandar Markovic int ccond_o, outflag_o, efi_o, c_o, scount_o, pos_o; 9*073d9f2cSAleksandar Markovic 10*073d9f2cSAleksandar Markovic ccond_i = 0x000000BC; /* 4 */ 11*073d9f2cSAleksandar Markovic outflag_i = 0x0000001B; /* 3 */ 12*073d9f2cSAleksandar Markovic efi_i = 0x00000001; /* 5 */ 13*073d9f2cSAleksandar Markovic c_i = 0x00000001; /* 2 */ 14*073d9f2cSAleksandar Markovic scount_i = 0x0000000F; /* 1 */ 15*073d9f2cSAleksandar Markovic pos_i = 0x0000000C; /* 0 */ 16*073d9f2cSAleksandar Markovic 17*073d9f2cSAleksandar Markovic dsp_i = (ccond_i << 24) | \ 18*073d9f2cSAleksandar Markovic (outflag_i << 16) | \ 19*073d9f2cSAleksandar Markovic (efi_i << 14) | \ 20*073d9f2cSAleksandar Markovic (c_i << 13) | \ 21*073d9f2cSAleksandar Markovic (scount_i << 7) | \ 22*073d9f2cSAleksandar Markovic pos_i; 23*073d9f2cSAleksandar Markovic 24*073d9f2cSAleksandar Markovic __asm 25*073d9f2cSAleksandar Markovic ("wrdsp %1, 0x3F\n\t" 26*073d9f2cSAleksandar Markovic "rddsp %0, 0x3F\n\t" 27*073d9f2cSAleksandar Markovic : "=r"(dsp_o) 28*073d9f2cSAleksandar Markovic : "r"(dsp_i) 29*073d9f2cSAleksandar Markovic ); 30*073d9f2cSAleksandar Markovic 31*073d9f2cSAleksandar Markovic ccond_o = (dsp_o >> 24) & 0xFF; 32*073d9f2cSAleksandar Markovic outflag_o = (dsp_o >> 16) & 0xFF; 33*073d9f2cSAleksandar Markovic efi_o = (dsp_o >> 14) & 0x01; 34*073d9f2cSAleksandar Markovic c_o = (dsp_o >> 14) & 0x01; 35*073d9f2cSAleksandar Markovic scount_o = (dsp_o >> 7) & 0x3F; 36*073d9f2cSAleksandar Markovic pos_o = dsp_o & 0x1F; 37*073d9f2cSAleksandar Markovic 38*073d9f2cSAleksandar Markovic assert(ccond_o == (ccond_i & 0x0F)); 39*073d9f2cSAleksandar Markovic assert(outflag_o == outflag_i); 40*073d9f2cSAleksandar Markovic assert(efi_o == efi_i); 41*073d9f2cSAleksandar Markovic assert(c_o == c_i); 42*073d9f2cSAleksandar Markovic assert(scount_o == scount_i); 43*073d9f2cSAleksandar Markovic assert(pos_o == pos_i); 44*073d9f2cSAleksandar Markovic 45*073d9f2cSAleksandar Markovic return 0; 46*073d9f2cSAleksandar Markovic } 47