fun s_div32(x1,x2,var ccr : cc) { val xx = (+x1 / +x2?sext(64))?cast(unsigned[64]); if(+xx > +(1?ext(64)<<31)) { xx = 0x7fffffff?ext(64); ccr = (ccr?bits(8) | 0x02)?cvt(cc); } else if(+xx < +((-1)?sext(64)<<31)) { xx = 0x80000000?sext(64); ccr = (ccr?bits(8) | 0x02)?cvt(cc); } return xx; }