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;
}