|
|
researchv10 Norman
/* "set ^0,%g1; add %fp,%g1,%^c" => ="set ^y,%g1; add %fp,%g1,^z" A="^c" a=a C="%^c" */
/* "set _^0,%^c" => ="set ^y,^z" A="_^c" a=a C="%^c" */
/* "set ^0,%g1; add %fp,%g1,%^c" => ="set ^y,%g1; add %fp,%g1,^z" A="^c" a=a C="%^c" */
/* "std %f^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="d" A="%f^n" 0=0 C="%sp+4*^c+68" */
/* "st %f^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%f^n" 0=0 C="%sp+4*^c+68" */
/* "st %^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%^n" 0=0 C="%sp+4*^c+68" */
/* "st %^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%^n" 0=0 C="%sp+4*^c+68" */
/* "std %f^1,[%^0]" => ="st^t ^y,[^z]" E="d" A="%f^n" 0=1 C="%^n" 2=0 */
/* "st %f^1,[%^0]" => ="st^t ^y,[^z]" E="" A="%f^n" 0=1 C="%^n" 2=0 */
/* "stb %^1,[%^0]" => ="st^t ^y,[^z]" E="b" A="%^n" 0=1 C="%^n" 2=0 */
/* "st %^1,[%^0]" => ="st^t ^y,[^z]" E="" A="%^n" 0=1 C="%^n" 2=0 */
/* "st %^1,[%^0]" => ="st^t ^y,[^z]" E="" A="%^n" 0=1 C="%^n" 2=0 */
/* "sth %^1,[%^0]" => ="st^t ^y,[^z]" E="h" A="%^n" 0=1 C="%^n" 2=0 */
/* "xnor %^0,%g0,%^c" => ="^f ^y,^x,^z" D="xnor" A="%^n" 0=0 B="%g0" C="%^c" */
/* "call %^0; st %^1,[%sp+64]" => ="call ^y; st ^z,[%sp+64]" A="%^n" 0=0 C="%^n" 2=1 */
/* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
/* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
/* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
/* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
/* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
/* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
/* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
/* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
/* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
/* "sll %^0,24,%g1; sra %g1,24,%^c" => ="sll ^y,^x,%g1; sra %g1,^x,^z" A="%^n" 0=0 B="^c" b="24" B="^c" b="24" C="%^c" */
/* "sll %^0,16,%g1; sra %g1,16,%^c" => ="sll ^y,^x,%g1; sra %g1,^x,^z" A="%^n" 0=0 B="^c" b="16" B="^c" b="16" C="%^c" */
/* "and %^0,0xff,%^c" => ="^f ^y,^x,^z" D="and" A="%^n" 0=0 B="^c" b="0xff" C="%^c" */
/* "set 0xffff,%g1; and %^0,%g1,%^c" => ="set 0xffff,%g1; and ^y,%g1,^z" A="%^n" 0=0 C="%^c" */
/* "fdtos %f^n,%f^c" => ="fdtos ^y,^z" A="%f^n" C="%f^c" */
/* "fstod %f^n,%f^c" => ="fstod ^y,^z" A="%f^n" C="%f^c" */
/* "st %^0,[%sp+64]; ld [%sp+64],^z; fitod ^z,%f^c" => ="st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z" A="%^n" 0=0 C="%f^c" */
/* "fdtoi %f^0,%f0; st %f0,[%sp+64]; ld [%sp+64],%^c" => ="fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z" A="%f^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^1,%o1; call .rem,2; mov %^0,%o0; mov %o0,%^c" => ="mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z" B="%^n" 1=1 D=".rem" A="%^n" 0=0 C="%^c" */
/* "mov %^1,%o1; call .mul,2; mov %^0,%o0; mov %o0,%^c" => ="mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z" B="%^n" 1=1 D=".mul" A="%^n" 0=0 C="%^c" */
/* "mov %^1,%o1; call .div,2; mov %^0,%o0; mov %o0,%^c" => ="mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z" B="%^n" 1=1 D=".div" A="%^n" 0=0 C="%^c" */
/* "mov %^1,%o1; call .urem,2; mov %^0,%o0; mov %o0,%^c" => ="mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z" B="%^n" 1=1 D=".urem" A="%^n" 0=0 C="%^c" */
/* "mov %^1,%o1; call .umul,2; mov %^0,%o0; mov %o0,%^c" => ="mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z" B="%^n" 1=1 D=".umul" A="%^n" 0=0 C="%^c" */
/* "mov %^1,%o1; call .udiv,2; mov %^0,%o0; mov %o0,%^c" => ="mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z" B="%^n" 1=1 D=".udiv" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "ldd [%^0],%f^c" => ="ld^t [^y],^z" E="d" A="%^n" 0=0 C="%f^c" */
/* "ld [%^0],%f^c" => ="ld^t [^y],^z" E="" A="%^n" 0=0 C="%f^c" */
/* "ld [%^0],%^c" => ="ld^t [^y],^z" E="" A="%^n" 0=0 C="%^c" */
/* "ldsh [%^0],%^c" => ="ld^t [^y],^z" E="sh" A="%^n" 0=0 C="%^c" */
/* "ld [%^0],%^c" => ="ld^t [^y],^z" E="" A="%^n" 0=0 C="%^c" */
/* "ldsb [%^0],%^c" => ="ld^t [^y],^z" E="sb" A="%^n" 0=0 C="%^c" */
/* "jmp %^0; nop" => ="jmp ^y; nop" A="%^n" 0=0 */
/* "^0:" => ="^z:" C="^c" c=a */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "fmovs %f^0,%f^c" => ="fmov^t ^y,^z" E="s" A="%f^n" 0=0 C="%f^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
/* "sll %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sll" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "sra %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sra" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "sll %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sll" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "srl %^0,%^1,%^c" => ="^f ^y,^x,^z" D="srl" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "fnegs %f^n,%f^c" => ="fnegs ^y,^z" A="%f^n" C="%f^c" */
/* "sub %g0,%^0,%^c" => ="^f ^y,^x,^z" D="sub" A="%g0" B="%^n" 1=0 C="%^c" */
/* "fsubd %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="sub" E="d" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "fsubs %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="sub" E="s" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "fmuld %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="mul" E="d" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "fmuls %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="mul" E="s" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "fdivd %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="div" E="d" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "fdivs %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="div" E="s" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "faddd %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="add" E="d" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "fadds %f^0,%f^1,%f^c" => ="f^f^t ^y,^x,^z" D="add" E="s" A="%f^n" 0=0 B="%f^n" 1=1 C="%f^c" */
/* "sub %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sub" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "sub %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sub" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "sub %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sub" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "xor %^0,%^1,%^c" => ="^f ^y,^x,^z" D="xor" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "and %^0,%^1,%^c" => ="^f ^y,^x,^z" D="and" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "add %^0,%^1,%^c" => ="^f ^y,^x,^z" D="add" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "add %^0,%^1,%^c" => ="^f ^y,^x,^z" D="add" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "add %^0,%^1,%^c" => ="^f ^y,^x,^z" D="add" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "or %^0,%^1,%^c" => ="^f ^y,^x,^z" D="or" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
/* "cmp %^0,%^1; bleu ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="leu" C="^c" c=a */
/* "cmp %^0,%^1; blu ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="lu" C="^c" c=a */
/* "cmp %^0,%^1; bgeu ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="geu" C="^c" c=a */
/* "cmp %^0,%^1; bgu ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="gu" C="^c" c=a */
/* "fcmped %f^0,%f^1; nop; fbne ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="d" A="%f^n" 0=0 B="%f^n" 1=1 D="ne" C="^c" c=a */
/* "fcmpes %f^0,%f^1; nop; fbne ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="s" A="%f^n" 0=0 B="%f^n" 1=1 D="ne" C="^c" c=a */
/* "fcmped %f^0,%f^1; nop; fbuge ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="d" A="%f^n" 0=0 B="%f^n" 1=1 D="uge" C="^c" c=a */
/* "fcmpes %f^0,%f^1; nop; fbuge ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="s" A="%f^n" 0=0 B="%f^n" 1=1 D="uge" C="^c" c=a */
/* "fcmped %f^0,%f^1; nop; fbug ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="d" A="%f^n" 0=0 B="%f^n" 1=1 D="ug" C="^c" c=a */
/* "fcmpes %f^0,%f^1; nop; fbug ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="s" A="%f^n" 0=0 B="%f^n" 1=1 D="ug" C="^c" c=a */
/* "fcmped %f^0,%f^1; nop; fbue ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="d" A="%f^n" 0=0 B="%f^n" 1=1 D="ue" C="^c" c=a */
/* "fcmpes %f^0,%f^1; nop; fbue ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="s" A="%f^n" 0=0 B="%f^n" 1=1 D="ue" C="^c" c=a */
/* "fcmped %f^0,%f^1; nop; fbule ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="d" A="%f^n" 0=0 B="%f^n" 1=1 D="ule" C="^c" c=a */
/* "fcmpes %f^0,%f^1; nop; fbule ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="s" A="%f^n" 0=0 B="%f^n" 1=1 D="ule" C="^c" c=a */
/* "fcmped %f^0,%f^1; nop; fbul ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="d" A="%f^n" 0=0 B="%f^n" 1=1 D="ul" C="^c" c=a */
/* "fcmpes %f^0,%f^1; nop; fbul ^0; nop" => ="fcmpe^t ^y,^x; nop; fb^f ^z; nop" E="s" A="%f^n" 0=0 B="%f^n" 1=1 D="ul" C="^c" c=a */
/* "cmp %^0,%^1; bne ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="ne" C="^c" c=a */
/* "cmp %^0,%^1; be ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="e" C="^c" c=a */
/* "cmp %^0,%^1; ble ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="le" C="^c" c=a */
/* "cmp %^0,%^1; ble ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="le" C="^c" c=a */
/* "cmp %^0,%^1; bl ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="l" C="^c" c=a */
/* "cmp %^0,%^1; bl ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="l" C="^c" c=a */
/* "cmp %^0,%^1; bge ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="ge" C="^c" c=a */
/* "cmp %^0,%^1; bge ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="ge" C="^c" c=a */
/* "cmp %^0,%^1; bg ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="g" C="^c" c=a */
/* "cmp %^0,%^1; bg ^0; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" 0=0 B="%^n" 1=1 D="g" C="^c" c=a */
/* "call %^n; nop" => ="call ^y; nop" A="%^n" */
/* "set _^c,^z" => ="set ^y,^z" 0A="_^c" */
/* "call %^n; st ^z,[%sp+64]" => ="call ^y; st ^z,[%sp+64]" A="%^n" */
/* "set _^c,^z" => ="set ^y,^z" 0A="_^c" */
/* "cmp ^y,%^n; b^f ^z; nop" => ="cmp ^y,^x; b^f ^z; nop" B="%^n" */
/* "set ^c,^z" => ="set ^y,^z" 1A="^c" */
/* "cmp ^y,%^n; b^f ^z; nop" => ="cmp ^y,^x; b^f ^z; nop" B="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" 1A="%^n" */
/* "cmp %^n,^x; b^f ^z; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
/* "^f ^y,%^n,^z" => ="^f ^y,^x,^z" B="%^n" */
/* "set ^c,^z" => ="set ^y,^z" 1A="^c" */
/* "^f ^y,%^n,^z" => ="^f ^y,^x,^z" B="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" 1A="%^n" */
/* "^f %^n,^x,^z" => ="^f ^y,^x,^z" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
/* "jmp %^n; nop" => ="jmp ^y; nop" A="%^n" */
/* "set _^c,^z" => ="set ^y,^z" 0A="_^c" */
/* "ba ^c; nop" => ="ba ^y; nop" A="^c" */
/* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
/* "add ^c,%fp,^z" => ="^f ^y,^x,^z" 0D="add" 0A="^c" 0B="%fp" */
/* "ld^t [%fp+^c],^z" => ="ld^t [^y],^z" A="%fp+^c" */
/* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
/* "set ^c,%g1; ld^t [%fp+%g1],^z" => ="set ^y,%g1; ld^t [%fp+%g1],^z" A="^c" */
/* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
/* "add %^n,^c,^z" => ="^f ^y,^x,^z" 0D="add" 0A="%^n" 0B="^c" */
/* "ld^t [%^n+^c],^z" => ="ld^t [^y],^z" A="%^n+^c" */
/* "ld{sb|sh|ub|uh|""|s} [%^n],^z" => ="ld^t [^y],^z" E=@TMP717 A="%^n" */
/* "add %^n,%^n,^z" => ="^f ^y,^x,^z" 0D="add" 0A="%^n" 0B="%^n" */
/* "ld^t [%^n+%^i],^z" => ="ld^t [^y],^z" A="%^n+%^i" */
/* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
/* "ld^t [%fp+^c],^z" => ="ld^t [^y],^z" A="%fp+^c" */
/* "mov %^c,%^c" => ="mov ^y,^z" A="%^c" C="%^c" */
/* "mov %^c,%^c" => ="mov ^y,^z" A="%^c" C="%^c" */
/* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
/* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
/* "set 0,^z" => ="set ^y,^z" A="^c" a="0" */
/* "set ^y,%g1; add %fp,%g1,%^c" => ="set ^y,%g1; add %fp,%g1,^z" C="%^c" */
/* "add ^y,%fp,^z" => ="^f ^y,^x,^z" D="add" B="%fp" */
/* "sll %^n,16,%g1; sra %g1,16,^z" => ="sll ^y,^x,%g1; sra %g1,^x,^z" A="%^n" B="^c" b="16" B="^c" b="16" */
/* "ldsh [^y],^z" => ="ld^t [^y],^z" 0E="sh" */
/* "ldsh [^y],^z" => ="ld^t [^y],^z" E="sh" */
/* "sll %^n,24,%g1; sra %g1,24,^z" => ="sll ^y,^x,%g1; sra %g1,^x,^z" A="%^n" B="^c" b="24" B="^c" b="24" */
/* "ldsb [^y],^z" => ="ld^t [^y],^z" 0E="sb" */
/* "ldsb [^y],^z" => ="ld^t [^y],^z" E="sb" */
/* "and %^n,0xff,^z" => ="^f ^y,^x,^z" D="and" A="%^n" B="^c" b="0xff" */
/* "ldsb [^y],^z" => ="ld^t [^y],^z" 0E="sb" */
/* "ldub [^y],^z" => ="ld^t [^y],^z" E="ub" */
/* "set 0xffff,%g1; and %^n,%g1,^z" => ="set 0xffff,%g1; and ^y,%g1,^z" A="%^n" */
/* "ldsh [^y],^z" => ="ld^t [^y],^z" 0E="sh" */
/* "lduh [^y],^z" => ="ld^t [^y],^z" E="uh" */
/* "st^t %^n,[%sp+4*^c+68]" => ="st^t ^y,[^z]" A="%^n" C="%sp+4*^c+68" */
/* "mov %^n,%^c" => ="mov ^y,^z" A="%^n" C="%^c" */
/* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
/* "add ^c,%fp,^z" => ="^f ^y,^x,^z" 2D="add" 2A="^c" 2B="%fp" */
/* "st^t ^y,[%fp+^c]" => ="st^t ^y,[^z]" C="%fp+^c" */
/* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
/* "set ^c,%g1; st^t ^y,[%fp+%g1]" => ="set ^z,%g1; st^t ^y,[%fp+%g1]" C="^c" */
/* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
/* "add %^n,^c,^z" => ="^f ^y,^x,^z" 2D="add" 2A="%^n" 2B="^c" */
/* "st^t ^y,[%^n+^c]" => ="st^t ^y,[^z]" C="%^n+^c" */
/* "st{b|h|""|s} ^y,[%^n]" => ="st^t ^y,[^z]" E=@TMP851 C="%^n" */
/* "add %^n,%^n,^z" => ="^f ^y,^x,^z" 2D="add" 2A="%^n" 2B="%^n" */
/* "st^t ^y,[%^n+%^i]" => ="st^t ^y,[^z]" C="%^n+%^i" */
/* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
/* "st^t %^n,[^z]" => ="st^t ^y,[^z]" A="%^n" */
/* "st^t ^y,[%fp+^c]" => ="st^t ^y,[^z]" C="%fp+^c" */
/* "mov ^y,%^c" => ="mov ^y,^z" C="%^c" */
/* "ldd [^y],^z" => ="ld^t [^y],^z" E="d" */
/* "ld [^y],^z; ld [^y+4],%f^c" => ="ld [^y],^z; ld [^y+4],^x" B="%f^c" */
/* "mov %^n,%^c" => ="mov ^y,^z" A="%^n" C="%^c" */
/* "st %f^n,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%f^n" C="%sp+4*^c+68" */
/* "st %f^n,[%sp+4*^c+68]; ld [%sp+4*^c+68],%o^c" => ="st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x" A="%f^n" C="^c" C="^c" B="^c" */
/* "std %f^n,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="d" A="%f^n" C="%sp+4*^c+68" */
/* "std ^y,[^z]" => ="st^t ^y,[^z]" E="d" */
/* "st ^y,[^z]; st %f^c,[^z+4]" => ="st ^y,[^z]; st ^x,[^z+4]" B="%f^c" */
/* "set _^c,^z" => ="set ^y,^z" A="_^c" */
/* "call _^c; nop" => ="call ^y; nop" A="_^c" */
/* "call _^c; st ^z,[%sp+64]" => ="call ^y; st ^z,[%sp+64]" A="_^c" */
#include "pseudos.c"
static char *shortopcodes[] = {
/* 608 */ "mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z",
/* 609 */ "call ^y; nop",
/* 610 */ "call ^y; st ^z,[%sp+64]",
/* 611 */ "fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z",
/* 612 */ "sll ^y,^x,%g1; sra %g1,^x,^z",
/* 613 */ "^z:",
/* 614 */ "nop",
/* 615 */ "# argd",
/* 616 */ "# movd",
/* 617 */ "# negd",
/* 618 */ "# asgnb",
/* 619 */ "# reg",
/* 620 */ "# ret",
/* 621 */ "# label",
/* 622 */ "^f ^y,^x,^z",
/* 623 */ "f^f^t ^y,^x,^z",
/* 624 */ "call ^y,2; nop",
/* 625 */ "cmp ^y,^x; b^f ^z; nop",
/* 626 */ "fcmpe^t ^y,^x; nop; fb^f ^z; nop",
/* 627 */ "fstod ^y,^z",
/* 628 */ "fdtos ^y,^z",
/* 629 */ "fnegs ^y,^z",
/* 630 */ "fmovd ^y,^z; fnegs ^z,^z",
/* 631 */ "st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z",
/* 632 */ "jmp ^y; nop",
/* 633 */ "ba ^y; nop",
/* 634 */ "ld^t [^y],^z",
/* 635 */ "ld [^y],^z; ld [^y+4],^x",
/* 636 */ "mov ^y,^z",
/* 637 */ "fmov^t ^y,^z",
/* 638 */ "set ^y,^z",
/* 639 */ "set 0xffff,%g1; and ^y,%g1,^z",
/* 640 */ "set ^z,%g1; st^t ^y,[%fp+%g1]",
/* 641 */ "set ^y,%g1; ld^t [%fp+%g1],^z",
/* 642 */ "st^t ^y,[^z]",
/* 643 */ "st ^y,[^z]",
/* 644 */ "st ^y,[^z]; st ^x,[^z+4]",
/* 645 */ "st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x",
/* 646 */ "set ^y,%g1; add %fp,%g1,^z",
/* 647 */ "call ^f,2; nop",
};
static char *asmstr0[] = {
"(DUMMY)",
"%^n",
"%^c",
"%fp",
"%sp",
"%g0",
"%f^n",
"%f^c",
"%^n+%^i",
"%^c+%^i",
"%fp+%^i",
"%sp+%^i",
"%g0+%^i",
"%f^n+%^i",
"%f^c+%^i",
"%^n+^c",
"%^n+_^c",
"%^n+4*^c+68",
"%^n-^c",
"%^n-_^c",
"%^n-4*^c+68",
"%^c+^c",
"%^c+_^c",
"%^c+4*^c+68",
"%^c-^c",
"%^c-_^c",
"%^c-4*^c+68",
"%fp+^c",
"%fp+_^c",
"%fp+4*^c+68",
"%fp-^c",
"%fp-_^c",
"%fp-4*^c+68",
"%sp+^c",
"%sp+_^c",
"%sp+4*^c+68",
"%sp-^c",
"%sp-_^c",
"%sp-4*^c+68",
"%g0+^c",
"%g0+_^c",
"%g0+4*^c+68",
"%g0-^c",
"%g0-_^c",
"%g0-4*^c+68",
"%f^n+^c",
"%f^n+_^c",
"%f^n+4*^c+68",
"%f^n-^c",
"%f^n-_^c",
"%f^n-4*^c+68",
"%f^c+^c",
"%f^c+_^c",
"%f^c+4*^c+68",
"%f^c-^c",
"%f^c-_^c",
"%f^c-4*^c+68",
"^c",
"_^c",
"4*^c+68",
};
static char *asmstr3[] = {
"(DUMMY)",
"add",
"and",
"div",
"mul",
"or",
"sll",
"sra",
"srl",
"sub",
"xor",
"xnor",
".udiv",
".umul",
".urem",
".div",
".mul",
".rem",
"e",
"ne",
"gu",
"g",
"geu",
"ge",
"lu",
"l",
"leu",
"le",
"ug",
"uge",
"ul",
"ule",
"ue",
};
static char *asmstr4[] = {
"(DUMMY)",
"sb",
"sh",
"ub",
"uh",
"b",
"h",
"s",
"d",
"",
};
static struct symbol sym[] = {
{{"(DUMMY)"}},
{{"0"}},
{{"0xff"}},
{{"0xffff"}},
{{"16"}},
{{"24"}},
};
dclproto(static void rewrite,(Node));
dclproto(static void emit,(Node));
static void initgen() {
opcodes = shortopcodes-608;
IR->x.rewrite = rewrite;
IR->emit = emit;
asmstr[0] = asmstr0;
asmstr[1] = asmstr0;
asmstr[2] = asmstr0;
asmstr[3] = asmstr3;
asmstr[4] = asmstr4;
sym[1].x.name = string("0");
sym[2].x.name = string("0xff");
sym[3].x.name = string("0xffff");
sym[4].x.name = string("16");
sym[5].x.name = string("24");
}
dclproto(static char *emit0,(char *, Node, int));
static char *emit0(rbp, a, n)
register char *rbp;
register Node a;
register int n;
{
register char *cp;
assert(a->x.ints[n]);
switch (a->x.ints[n]) {
case 0: /* (DUMMY) */
*rbp++ = '(';
*rbp++ = 'D';
*rbp++ = 'U';
*rbp++ = 'M';
*rbp++ = 'M';
*rbp++ = 'Y';
*rbp++ = ')';
return rbp;
case 1: /* %^n */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 2: /* %^c */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 3: /* %fp */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
return rbp;
case 4: /* %sp */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
return rbp;
case 5: /* %g0 */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
return rbp;
case 6: /* %f^n */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 7: /* %f^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 8: /* %^n+%^i */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '%';
assert(a->kids[n+3]);
assert(a->kids[n+3]->x.registered);
assert(a->kids[n+3]->syms[RX]);
for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 9: /* %^c+%^i */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '%';
assert(a->kids[n+3]);
assert(a->kids[n+3]->x.registered);
assert(a->kids[n+3]->syms[RX]);
for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 10: /* %fp+%^i */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '%';
assert(a->kids[n+3]);
assert(a->kids[n+3]->x.registered);
assert(a->kids[n+3]->syms[RX]);
for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 11: /* %sp+%^i */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '%';
assert(a->kids[n+3]);
assert(a->kids[n+3]->x.registered);
assert(a->kids[n+3]->syms[RX]);
for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 12: /* %g0+%^i */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
*rbp++ = '+';
*rbp++ = '%';
assert(a->kids[n+3]);
assert(a->kids[n+3]->x.registered);
assert(a->kids[n+3]->syms[RX]);
for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 13: /* %f^n+%^i */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '%';
assert(a->kids[n+3]);
assert(a->kids[n+3]->x.registered);
assert(a->kids[n+3]->syms[RX]);
for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 14: /* %f^c+%^i */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '%';
assert(a->kids[n+3]);
assert(a->kids[n+3]->x.registered);
assert(a->kids[n+3]->syms[RX]);
for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 15: /* %^n+^c */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 16: /* %^n+_^c */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 17: /* %^n+4*^c+68 */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 18: /* %^n-^c */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 19: /* %^n-_^c */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 20: /* %^n-4*^c+68 */
*rbp++ = '%';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 21: /* %^c+^c */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 22: /* %^c+_^c */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 23: /* %^c+4*^c+68 */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 24: /* %^c-^c */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 25: /* %^c-_^c */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 26: /* %^c-4*^c+68 */
*rbp++ = '%';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 27: /* %fp+^c */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '+';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 28: /* %fp+_^c */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 29: /* %fp+4*^c+68 */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 30: /* %fp-^c */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '-';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 31: /* %fp-_^c */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '-';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 32: /* %fp-4*^c+68 */
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '-';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 33: /* %sp+^c */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 34: /* %sp+_^c */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 35: /* %sp+4*^c+68 */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 36: /* %sp-^c */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '-';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 37: /* %sp-_^c */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '-';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 38: /* %sp-4*^c+68 */
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '-';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 39: /* %g0+^c */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
*rbp++ = '+';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 40: /* %g0+_^c */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
*rbp++ = '+';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 41: /* %g0+4*^c+68 */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 42: /* %g0-^c */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
*rbp++ = '-';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 43: /* %g0-_^c */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
*rbp++ = '-';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 44: /* %g0-4*^c+68 */
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '0';
*rbp++ = '-';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 45: /* %f^n+^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 46: /* %f^n+_^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 47: /* %f^n+4*^c+68 */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 48: /* %f^n-^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 49: /* %f^n-_^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 50: /* %f^n-4*^c+68 */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 51: /* %f^c+^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 52: /* %f^c+_^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 53: /* %f^c+4*^c+68 */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 54: /* %f^c-^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 55: /* %f^c-_^c */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 56: /* %f^c-4*^c+68 */
*rbp++ = '%';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '-';
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
case 57: /* ^c */
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 58: /* _^c */
*rbp++ = '_';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 59: /* 4*^c+68 */
*rbp++ = '4';
*rbp++ = '*';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
return rbp;
}
return rbp;
}
static void emit(a)
register Node a;
{
register char *cp, *rbp;
for (; a; a = a->x.next) {
switch (a->op) {
case 608: L608: /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
rbp = bp;
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
*rbp++ = ' ';
rbp = emit0(rbp, a, 1);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'o';
*rbp++ = '1';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'c';
*rbp++ = 'a';
*rbp++ = 'l';
*rbp++ = 'l';
*rbp++ = ' ';
assert(a->x.ints[3]);
for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
*rbp++ = ',';
*rbp++ = '2';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'o';
*rbp++ = '0';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
*rbp++ = ' ';
*rbp++ = '%';
*rbp++ = 'o';
*rbp++ = '0';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 609: L609: /* call ^y; nop */
rbp = bp;
*rbp++ = 'c';
*rbp++ = 'a';
*rbp++ = 'l';
*rbp++ = 'l';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
case 610: L610: /* call ^y; st ^z,[%sp+64] */
rbp = bp;
*rbp++ = 'c';
*rbp++ = 'a';
*rbp++ = 'l';
*rbp++ = 'l';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 2);
*rbp++ = ',';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '4';
*rbp++ = ']';
bp = rbp;
outs("\n");
break;
case 611: L611: /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
rbp = bp;
*rbp++ = 'f';
*rbp++ = 'd';
*rbp++ = 't';
*rbp++ = 'o';
*rbp++ = 'i';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = '0';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = ' ';
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = '0';
*rbp++ = ',';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '4';
*rbp++ = ']';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'l';
*rbp++ = 'd';
*rbp++ = ' ';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '4';
*rbp++ = ']';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 612: L612: /* sll ^y,^x,%g1; sra %g1,^x,^z */
rbp = bp;
*rbp++ = 's';
*rbp++ = 'l';
*rbp++ = 'l';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 's';
*rbp++ = 'r';
*rbp++ = 'a';
*rbp++ = ' ';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 613: L613: /* ^z: */
rbp = bp;
rbp = emit0(rbp, a, 2);
*rbp++ = ':';
bp = rbp;
outs("\n");
break;
case 614: L614: /* nop */
rbp = bp;
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
case 615: L615: /* # argd */
(*IR->x.emitspecial)(a);
break;
case 616: L616: /* # movd */
(*IR->x.emitspecial)(a);
break;
case 617: L617: /* # negd */
(*IR->x.emitspecial)(a);
break;
case 618: L618: /* # asgnb */
(*IR->x.emitspecial)(a);
break;
case 619: L619: /* # reg */
(*IR->x.emitspecial)(a);
break;
case 620: L620: /* # ret */
(*IR->x.emitspecial)(a);
break;
case 621: L621: /* # label */
(*IR->x.emitspecial)(a);
break;
case 622: L622: /* ^f ^y,^x,^z */
rbp = bp;
assert(a->x.ints[3]);
for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 623: L623: /* f^f^t ^y,^x,^z */
rbp = bp;
*rbp++ = 'f';
assert(a->x.ints[3]);
for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
assert(a->x.ints[4]);
for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 624: L624: /* call ^y,2; nop */
rbp = bp;
*rbp++ = 'c';
*rbp++ = 'a';
*rbp++ = 'l';
*rbp++ = 'l';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '2';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
case 625: L625: /* cmp ^y,^x; b^f ^z; nop */
rbp = bp;
*rbp++ = 'c';
*rbp++ = 'm';
*rbp++ = 'p';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'b';
assert(a->x.ints[3]);
for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 2);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
case 626: L626: /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
rbp = bp;
*rbp++ = 'f';
*rbp++ = 'c';
*rbp++ = 'm';
*rbp++ = 'p';
*rbp++ = 'e';
assert(a->x.ints[4]);
for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'f';
*rbp++ = 'b';
assert(a->x.ints[3]);
for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 2);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
case 627: L627: /* fstod ^y,^z */
rbp = bp;
*rbp++ = 'f';
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = 'o';
*rbp++ = 'd';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 628: L628: /* fdtos ^y,^z */
rbp = bp;
*rbp++ = 'f';
*rbp++ = 'd';
*rbp++ = 't';
*rbp++ = 'o';
*rbp++ = 's';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 629: L629: /* fnegs ^y,^z */
rbp = bp;
*rbp++ = 'f';
*rbp++ = 'n';
*rbp++ = 'e';
*rbp++ = 'g';
*rbp++ = 's';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 630: L630: /* fmovd ^y,^z; fnegs ^z,^z */
rbp = bp;
*rbp++ = 'f';
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
*rbp++ = 'd';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'f';
*rbp++ = 'n';
*rbp++ = 'e';
*rbp++ = 'g';
*rbp++ = 's';
*rbp++ = ' ';
rbp = emit0(rbp, a, 2);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 631: L631: /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
rbp = bp;
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '4';
*rbp++ = ']';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'l';
*rbp++ = 'd';
*rbp++ = ' ';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '4';
*rbp++ = ']';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'f';
*rbp++ = 'i';
*rbp++ = 't';
*rbp++ = 'o';
*rbp++ = 'd';
*rbp++ = ' ';
rbp = emit0(rbp, a, 2);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 632: L632: /* jmp ^y; nop */
rbp = bp;
*rbp++ = 'j';
*rbp++ = 'm';
*rbp++ = 'p';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
case 633: L633: /* ba ^y; nop */
rbp = bp;
*rbp++ = 'b';
*rbp++ = 'a';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
case 634: L634: /* ld^t [^y],^z */
rbp = bp;
*rbp++ = 'l';
*rbp++ = 'd';
assert(a->x.ints[4]);
for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
*rbp++ = '[';
rbp = emit0(rbp, a, 0);
*rbp++ = ']';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 635: L635: /* ld [^y],^z; ld [^y+4],^x */
rbp = bp;
*rbp++ = 'l';
*rbp++ = 'd';
*rbp++ = ' ';
*rbp++ = '[';
rbp = emit0(rbp, a, 0);
*rbp++ = ']';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'l';
*rbp++ = 'd';
*rbp++ = ' ';
*rbp++ = '[';
rbp = emit0(rbp, a, 0);
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = ']';
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp;
outs("\n");
break;
case 636: L636: /* mov ^y,^z */
rbp = bp;
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 637: L637: /* fmov^t ^y,^z */
rbp = bp;
*rbp++ = 'f';
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
assert(a->x.ints[4]);
for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 638: L638: /* set ^y,^z */
rbp = bp;
*rbp++ = 's';
*rbp++ = 'e';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 639: L639: /* set 0xffff,%g1; and ^y,%g1,^z */
rbp = bp;
*rbp++ = 's';
*rbp++ = 'e';
*rbp++ = 't';
*rbp++ = ' ';
*rbp++ = '0';
*rbp++ = 'x';
*rbp++ = 'f';
*rbp++ = 'f';
*rbp++ = 'f';
*rbp++ = 'f';
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'a';
*rbp++ = 'n';
*rbp++ = 'd';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 640: L640: /* set ^z,%g1; st^t ^y,[%fp+%g1] */
rbp = bp;
*rbp++ = 's';
*rbp++ = 'e';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 2);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 's';
*rbp++ = 't';
assert(a->x.ints[4]);
for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
*rbp++ = ']';
bp = rbp;
outs("\n");
break;
case 641: L641: /* set ^y,%g1; ld^t [%fp+%g1],^z */
rbp = bp;
*rbp++ = 's';
*rbp++ = 'e';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'l';
*rbp++ = 'd';
assert(a->x.ints[4]);
for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
*rbp++ = ']';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 642: L642: /* st^t ^y,[^z] */
rbp = bp;
*rbp++ = 's';
*rbp++ = 't';
assert(a->x.ints[4]);
for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '[';
rbp = emit0(rbp, a, 2);
*rbp++ = ']';
bp = rbp;
outs("\n");
break;
case 643: L643: /* st ^y,[^z] */
rbp = bp;
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '[';
rbp = emit0(rbp, a, 2);
*rbp++ = ']';
bp = rbp;
outs("\n");
break;
case 644: L644: /* st ^y,[^z]; st ^x,[^z+4] */
rbp = bp;
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '[';
rbp = emit0(rbp, a, 2);
*rbp++ = ']';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 1);
*rbp++ = ',';
*rbp++ = '[';
rbp = emit0(rbp, a, 2);
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = ']';
bp = rbp;
outs("\n");
break;
case 645: L645: /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
rbp = bp;
*rbp++ = 's';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
rbp = emit0(rbp, a, 2);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
*rbp++ = ']';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'l';
*rbp++ = 'd';
*rbp++ = ' ';
*rbp++ = '[';
*rbp++ = '%';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = '+';
*rbp++ = '4';
*rbp++ = '*';
rbp = emit0(rbp, a, 2);
*rbp++ = '+';
*rbp++ = '6';
*rbp++ = '8';
*rbp++ = ']';
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'o';
rbp = emit0(rbp, a, 1);
bp = rbp;
outs("\n");
break;
case 646: L646: /* set ^y,%g1; add %fp,%g1,^z */
rbp = bp;
*rbp++ = 's';
*rbp++ = 'e';
*rbp++ = 't';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'a';
*rbp++ = 'd';
*rbp++ = 'd';
*rbp++ = ' ';
*rbp++ = '%';
*rbp++ = 'f';
*rbp++ = 'p';
*rbp++ = ',';
*rbp++ = '%';
*rbp++ = 'g';
*rbp++ = '1';
*rbp++ = ',';
rbp = emit0(rbp, a, 2);
bp = rbp;
outs("\n");
break;
case 647: L647: /* call ^f,2; nop */
rbp = bp;
*rbp++ = 'c';
*rbp++ = 'a';
*rbp++ = 'l';
*rbp++ = 'l';
*rbp++ = ' ';
assert(a->x.ints[3]);
for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
*rbp++ = ',';
*rbp++ = '2';
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'n';
*rbp++ = 'o';
*rbp++ = 'p';
bp = rbp;
outs("\n");
break;
}
}
}
static void final(a)
register Node a;
{
register int s;
switch (a->op) {
case 608: L608: /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
dumptree(a, 608);
spill(0x0000ff00, IREG, a);
a->op = 608;
break;
case 609: L609: /* call ^y; nop */
dumptree(a, 609);
if (
a->x.ints[0] == 58 /* _^c */
) {
a->x.ints[0] = 57; /* ^c */
goto L609; /* call ^y; nop */
}
spill(0xfffffffc, FREG, a);
a->op = 609;
break;
case 610: L610: /* call ^y; st ^z,[%sp+64] */
dumptree(a, 610);
if (
a->x.ints[0] == 58 /* _^c */
) {
a->x.ints[0] = 57; /* ^c */
goto L610; /* call ^y; st ^z,[%sp+64] */
}
spill(0xfffffffc, FREG, a);
a->op = 610;
break;
case 611: L611: /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
dumptree(a, 611);
spill(0x00000001, FREG, a);
a->op = 611;
break;
case 612: L612: /* sll ^y,^x,%g1; sra %g1,^x,^z */
dumptree(a, 612);
a->op = 612;
break;
case 613: L613: /* ^z: */
dumptree(a, 613);
a->op = 613;
break;
case 614: L614: /* nop */
dumptree(a, 614);
a->op = 614;
break;
case 615: L615: /* # argd */
dumptree(a, 615);
a->op = 615;
return;
case 616: L616: /* # movd */
dumptree(a, 616);
a->op = 616;
return;
case 617: L617: /* # negd */
dumptree(a, 617);
a->op = 617;
return;
case 618: L618: /* # asgnb */
dumptree(a, 618);
a->op = 618;
return;
case 619: L619: /* # reg */
dumptree(a, 619);
a->op = 619;
return;
case 620: L620: /* # ret */
dumptree(a, 620);
a->op = 620;
return;
case 621: L621: /* # label */
dumptree(a, 621);
a->op = 621;
return;
case 622: L622: /* ^f ^y,^x,^z */
dumptree(a, 622);
a->op = 622;
break;
case 623: L623: /* f^f^t ^y,^x,^z */
dumptree(a, 623);
a->op = 623;
break;
case 624: L624: /* call ^y,2; nop */
dumptree(a, 624);
a->op = 624;
break;
case 625: L625: /* cmp ^y,^x; b^f ^z; nop */
dumptree(a, 625);
a->op = 625;
break;
case 626: L626: /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
dumptree(a, 626);
a->op = 626;
break;
case 627: L627: /* fstod ^y,^z */
dumptree(a, 627);
a->op = 627;
break;
case 628: L628: /* fdtos ^y,^z */
dumptree(a, 628);
a->op = 628;
break;
case 629: L629: /* fnegs ^y,^z */
dumptree(a, 629);
a->op = 629;
break;
case 630: L630: /* fmovd ^y,^z; fnegs ^z,^z */
dumptree(a, 630);
a->op = 630;
break;
case 631: L631: /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
dumptree(a, 631);
a->op = 631;
break;
case 632: L632: /* jmp ^y; nop */
dumptree(a, 632);
a->op = 632;
break;
case 633: L633: /* ba ^y; nop */
dumptree(a, 633);
a->op = 633;
break;
case 634: L634: /* ld^t [^y],^z */
dumptree(a, 634);
if (
a->x.ints[4] == 8 /* d */
) {
a->x.ints[1] = 7; /* %f^c */
a->syms[1]=nextreg(a->syms[2]);
goto L635; /* ld [^y],^z; ld [^y+4],^x */
}
a->op = 634;
break;
case 635: L635: /* ld [^y],^z; ld [^y+4],^x */
dumptree(a, 635);
a->op = 635;
break;
case 636: L636: /* mov ^y,^z */
dumptree(a, 636);
if (
a->x.ints[0] == 1 /* %^n */
&& a->x.ints[2] == 2 /* %^c */
&& a->kids[0]->syms[RX]->x.name==a->syms[RX]->x.name
) {
goto L619; /* # reg */
}
a->op = 636;
break;
case 637: L637: /* fmov^t ^y,^z */
dumptree(a, 637);
a->op = 637;
break;
case 638: L638: /* set ^y,^z */
dumptree(a, 638);
if (
a->x.ints[0] == 58 /* _^c */
) {
a->x.ints[0] = 57; /* ^c */
goto L638; /* set ^y,^z */
}
a->op = 638;
break;
case 639: L639: /* set 0xffff,%g1; and ^y,%g1,^z */
dumptree(a, 639);
a->op = 639;
break;
case 640: L640: /* set ^z,%g1; st^t ^y,[%fp+%g1] */
dumptree(a, 640);
a->op = 640;
break;
case 641: L641: /* set ^y,%g1; ld^t [%fp+%g1],^z */
dumptree(a, 641);
a->op = 641;
break;
case 642: L642: /* st^t ^y,[^z] */
dumptree(a, 642);
switch (a->x.ints[4]) {
case 8: /* d */
if (
a->x.ints[0] == 6 /* %f^n */
&& a->x.ints[2] == 35 /* %sp+4*^c+68 */
) {
spill(5>=a->syms[1]->u.c.v.i ? 256*("\003\006\014\030\060\040"[a->syms[1]->u.c.v.i]) : 0, IREG, a);
goto L615; /* # argd */
}
a->x.ints[1] = 7; /* %f^c */
a->syms[1]=nextreg(a->kids[0]->syms[2]);
goto L644; /* st ^y,[^z]; st ^x,[^z+4] */
case 9: /* */
if (
a->x.ints[0] == 6 /* %f^n */
&& a->x.ints[2] == 35 /* %sp+4*^c+68 */
&& 6>a->syms[2]->u.c.v.i
) {
a->x.ints[1] = 57; /* ^c */
a->x.ints[2] = 57; /* ^c */
a->x.ints[2] = 57; /* ^c */
a->x.ints[0] = 6; /* %f^n */
goto L645; /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
}
break;
}
a->op = 642;
break;
case 643: L643: /* st ^y,[^z] */
dumptree(a, 643);
a->op = 643;
break;
case 644: L644: /* st ^y,[^z]; st ^x,[^z+4] */
dumptree(a, 644);
a->op = 644;
break;
case 645: L645: /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
dumptree(a, 645);
a->op = 645;
break;
case 646: L646: /* set ^y,%g1; add %fp,%g1,^z */
dumptree(a, 646);
a->op = 646;
break;
case 647: L647: /* call ^f,2; nop */
dumptree(a, 647);
a->op = 647;
break;
}
}
static void rewrite(a)
register Node a;
{
register Node b, c;
register int s;
assert(a);
switch (a->op) {
case 19: L19: /* CNSTC */
dumptree(a, a->op);
setreg(a, rmap[C]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 57; /* ^c */
goto L638; /* set ^y,^z */
case 20: L20: /* CNSTS */
dumptree(a, a->op);
setreg(a, rmap[S]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 57; /* ^c */
goto L638; /* set ^y,^z */
case 21: L21: /* CNSTI */
dumptree(a, a->op);
setreg(a, rmap[I]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 57; /* ^c */
goto L638; /* set ^y,^z */
case 22: L22: /* CNSTU */
dumptree(a, a->op);
setreg(a, rmap[U]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 57; /* ^c */
goto L638; /* set ^y,^z */
case 23: L23: /* CNSTP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 57; /* ^c */
goto L638; /* set ^y,^z */
case 33: L33: /* ARGF */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[2] = 35; /* %sp+4*^c+68 */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 9; /* */
goto L642; /* st^t ^y,[^z] */
case 34: L34: /* ARGD */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[2] = 35; /* %sp+4*^c+68 */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
goto L642; /* st^t ^y,[^z] */
case 37: L37: /* ARGI */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[2] = 35; /* %sp+4*^c+68 */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 9; /* */
goto L642; /* st^t ^y,[^z] */
case 39: L39: /* ARGP */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[2] = 35; /* %sp+4*^c+68 */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 9; /* */
goto L642; /* st^t ^y,[^z] */
case 49: L49: /* ASGNF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[2] = 1; /* %^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 9; /* */
a->kids[0] = a->kids[1];
a->kids[1] = 0;
goto L642; /* st^t ^y,[^z] */
case 50: L50: /* ASGND */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[2] = 1; /* %^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
a->kids[0] = a->kids[1];
a->kids[1] = 0;
goto L642; /* st^t ^y,[^z] */
case 51: L51: /* ASGNC */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[2] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 5; /* b */
a->kids[0] = a->kids[1];
a->kids[1] = 0;
goto L642; /* st^t ^y,[^z] */
case 52: L52: /* ASGNS */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[2] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 6; /* h */
a->kids[0] = a->kids[1];
a->kids[1] = 0;
goto L642; /* st^t ^y,[^z] */
case 53: L53: /* ASGNI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[2] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 9; /* */
a->kids[0] = a->kids[1];
a->kids[1] = 0;
goto L642; /* st^t ^y,[^z] */
case 55: L55: /* ASGNP */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[2] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 9; /* */
a->kids[0] = a->kids[1];
a->kids[1] = 0;
goto L642; /* st^t ^y,[^z] */
case 57: L57: /* ASGNB */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
goto L618; /* # asgnb */
case 65: L65: /* INDIRF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 9; /* */
goto L634; /* ld^t [^y],^z */
case 66: L66: /* INDIRD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 8; /* d */
goto L634; /* ld^t [^y],^z */
case 67: L67: /* INDIRC */
dumptree(a, a->op);
setreg(a, rmap[C]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 1; /* sb */
goto L634; /* ld^t [^y],^z */
case 68: L68: /* INDIRS */
dumptree(a, a->op);
setreg(a, rmap[S]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 2; /* sh */
goto L634; /* ld^t [^y],^z */
case 69: L69: /* INDIRI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 9; /* */
goto L634; /* ld^t [^y],^z */
case 71: L71: /* INDIRP */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[4] = 9; /* */
goto L634; /* ld^t [^y],^z */
case 73: L73: /* INDIRB */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 85: L85: /* CVCI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->syms[1] = &sym[5]; /* 24 */
a->x.ints[1] = 57; /* ^c */
a->syms[1] = &sym[5]; /* 24 */
a->x.ints[1] = 57; /* ^c */
a->x.ints[0] = 1; /* %^n */
goto L612; /* sll ^y,^x,%g1; sra %g1,^x,^z */
case 86: L86: /* CVCU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->syms[1] = &sym[2]; /* 0xff */
a->x.ints[1] = 57; /* ^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 2; /* and */
goto L622; /* ^f ^y,^x,^z */
case 97: L97: /* CVDF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[0] = 6; /* %f^n */
goto L628; /* fdtos ^y,^z */
case 101: L101: /* CVDI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 6; /* %f^n */
goto L611; /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
case 114: L114: /* CVFD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[0] = 6; /* %f^n */
goto L627; /* fstod ^y,^z */
case 130: L130: /* CVID */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[0] = 1; /* %^n */
goto L631; /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
case 131: L131: /* CVIC */
dumptree(a, a->op);
setreg(a, rmap[C]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 132: L132: /* CVIS */
dumptree(a, a->op);
setreg(a, rmap[S]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 134: L134: /* CVIU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 150: L150: /* CVPU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 165: L165: /* CVSI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->syms[1] = &sym[4]; /* 16 */
a->x.ints[1] = 57; /* ^c */
a->syms[1] = &sym[4]; /* 16 */
a->x.ints[1] = 57; /* ^c */
a->x.ints[0] = 1; /* %^n */
goto L612; /* sll ^y,^x,%g1; sra %g1,^x,^z */
case 166: L166: /* CVSU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L639; /* set 0xffff,%g1; and ^y,%g1,^z */
case 179: L179: /* CVUC */
dumptree(a, a->op);
setreg(a, rmap[C]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 180: L180: /* CVUS */
dumptree(a, a->op);
setreg(a, rmap[S]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 181: L181: /* CVUI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 183: L183: /* CVUP */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 193: L193: /* NEGF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[0] = 6; /* %f^n */
goto L629; /* fnegs ^y,^z */
case 194: L194: /* NEGD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
goto L617; /* # negd */
case 197: L197: /* NEGI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->kids[1] = a->kids[0];
a->kids[0] = 0;
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 5; /* %g0 */
a->x.ints[3] = 9; /* sub */
goto L622; /* ^f ^y,^x,^z */
case 209: L209: /* CALLF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* %^n */
setreg(a,f0);
goto L609; /* call ^y; nop */
case 210: L210: /* CALLD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* %^n */
setreg(a,d0);
goto L609; /* call ^y; nop */
case 213: L213: /* CALLI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* %^n */
setreg(a,oreg[0]);
goto L609; /* call ^y; nop */
case 216: L216: /* CALLV */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* %^n */
setreg(a,oreg[0]);
goto L609; /* call ^y; nop */
case 217: L217: /* CALLB */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->kids[2] = a->kids[1];
a->kids[1] = 0;
a->x.ints[2] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
setreg(a,oreg[0]);
goto L610; /* call ^y; st ^z,[%sp+64] */
case 225: L225: /* LOADF */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
goto L637; /* fmov^t ^y,^z */
case 226: L226: /* LOADD */
dumptree(a, a->op);
rewrite(a->kids[0]);
goto L616; /* # movd */
case 227: L227: /* LOADC */
case 228: L228: /* LOADS */
case 229: L229: /* LOADI */
case 230: L230: /* LOADU */
case 231: L231: /* LOADP */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 233: L233: /* LOADB */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
goto L636; /* mov ^y,^z */
case 241: L241: /* RETF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rtarget(a,0,f0);
goto L620; /* # ret */
case 242: L242: /* RETD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rtarget(a,0,d0);
goto L620; /* # ret */
case 245: L245: /* RETI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rtarget(a,0,i0);
goto L620; /* # ret */
case 248: L248: /* RETV */
dumptree(a, a->op);
goto L620; /* # ret */
case 263: L263: /* ADDRGP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 58; /* _^c */
goto L638; /* set ^y,^z */
case 279: L279: /* ADDRFP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 57; /* ^c */
goto L646; /* set ^y,%g1; add %fp,%g1,^z */
case 295: L295: /* ADDRLP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 57; /* ^c */
goto L646; /* set ^y,%g1; add %fp,%g1,^z */
case 305: L305: /* ADDF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
a->x.ints[3] = 1; /* add */
goto L623; /* f^f^t ^y,^x,^z */
case 306: L306: /* ADDD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
a->x.ints[3] = 1; /* add */
goto L623; /* f^f^t ^y,^x,^z */
case 309: L309: /* ADDI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 1; /* add */
goto L622; /* ^f ^y,^x,^z */
case 310: L310: /* ADDU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 1; /* add */
goto L622; /* ^f ^y,^x,^z */
case 311: L311: /* ADDP */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 1; /* add */
goto L622; /* ^f ^y,^x,^z */
case 321: L321: /* SUBF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
a->x.ints[3] = 9; /* sub */
goto L623; /* f^f^t ^y,^x,^z */
case 322: L322: /* SUBD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
a->x.ints[3] = 9; /* sub */
goto L623; /* f^f^t ^y,^x,^z */
case 325: L325: /* SUBI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 9; /* sub */
goto L622; /* ^f ^y,^x,^z */
case 326: L326: /* SUBU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 9; /* sub */
goto L622; /* ^f ^y,^x,^z */
case 327: L327: /* SUBP */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 9; /* sub */
goto L622; /* ^f ^y,^x,^z */
case 341: L341: /* LSHI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 6; /* sll */
goto L622; /* ^f ^y,^x,^z */
case 342: L342: /* LSHU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 6; /* sll */
goto L622; /* ^f ^y,^x,^z */
case 357: L357: /* MODI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 17; /* .rem */
a->x.ints[1] = 1; /* %^n */
ncalls++;
goto L608; /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
case 358: L358: /* MODU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 14; /* .urem */
a->x.ints[1] = 1; /* %^n */
ncalls++;
goto L608; /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
case 373: L373: /* RSHI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 7; /* sra */
goto L622; /* ^f ^y,^x,^z */
case 374: L374: /* RSHU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 8; /* srl */
goto L622; /* ^f ^y,^x,^z */
case 390: L390: /* BANDU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 2; /* and */
goto L622; /* ^f ^y,^x,^z */
case 406: L406: /* BCOMU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 5; /* %g0 */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 11; /* xnor */
goto L622; /* ^f ^y,^x,^z */
case 422: L422: /* BORU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 5; /* or */
goto L622; /* ^f ^y,^x,^z */
case 438: L438: /* BXORU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 10; /* xor */
goto L622; /* ^f ^y,^x,^z */
case 449: L449: /* DIVF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
a->x.ints[3] = 3; /* div */
goto L623; /* f^f^t ^y,^x,^z */
case 450: L450: /* DIVD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
a->x.ints[3] = 3; /* div */
goto L623; /* f^f^t ^y,^x,^z */
case 453: L453: /* DIVI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 15; /* .div */
a->x.ints[1] = 1; /* %^n */
ncalls++;
goto L608; /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
case 454: L454: /* DIVU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 12; /* .udiv */
a->x.ints[1] = 1; /* %^n */
ncalls++;
goto L608; /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
case 465: L465: /* MULF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
a->x.ints[3] = 4; /* mul */
goto L623; /* f^f^t ^y,^x,^z */
case 466: L466: /* MULD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 7; /* %f^c */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
a->x.ints[3] = 4; /* mul */
goto L623; /* f^f^t ^y,^x,^z */
case 469: L469: /* MULI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 16; /* .mul */
a->x.ints[1] = 1; /* %^n */
ncalls++;
goto L608; /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
case 470: L470: /* MULU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->x.ints[3] = 13; /* .umul */
a->x.ints[1] = 1; /* %^n */
ncalls++;
goto L608; /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
case 481: L481: /* EQF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 32; /* ue */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 482: L482: /* EQD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 32; /* ue */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 485: L485: /* EQI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 18; /* e */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 497: L497: /* GEF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 29; /* uge */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 498: L498: /* GED */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 29; /* uge */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 501: L501: /* GEI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 23; /* ge */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 502: L502: /* GEU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 22; /* geu */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 513: L513: /* GTF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 28; /* ug */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 514: L514: /* GTD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 28; /* ug */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 517: L517: /* GTI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 21; /* g */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 518: L518: /* GTU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 20; /* gu */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 529: L529: /* LEF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 31; /* ule */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 530: L530: /* LED */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 31; /* ule */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 533: L533: /* LEI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 27; /* le */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 534: L534: /* LEU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 26; /* leu */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 545: L545: /* LTF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 30; /* ul */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 546: L546: /* LTD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 30; /* ul */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 549: L549: /* LTI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 25; /* l */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 550: L550: /* LTU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 24; /* lu */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 561: L561: /* NEF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 19; /* ne */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 7; /* s */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 562: L562: /* NED */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 19; /* ne */
a->x.ints[1] = 6; /* %f^n */
a->x.ints[0] = 6; /* %f^n */
a->x.ints[4] = 8; /* d */
goto L626; /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
case 565: L565: /* NEI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
a->x.ints[3] = 19; /* ne */
a->x.ints[1] = 1; /* %^n */
a->x.ints[0] = 1; /* %^n */
goto L625; /* cmp ^y,^x; b^f ^z; nop */
case 584: L584: /* JUMPV */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* %^n */
goto L632; /* jmp ^y; nop */
case 600: L600: /* LABELV */
dumptree(a, a->op);
a->syms[2] = a->syms[0];
a->x.ints[2] = 57; /* ^c */
goto L613; /* ^z: */
case 608: L608: /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
dumptree(a, 608);
a->op = 608;
break;
case 609: L609: /* call ^y; nop */
dumptree(a, 609);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* %^n */
&& b->op == 638 /* set ^y,^z */
&& b->x.ints[0] == 58 /* _^c */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L609; /* call ^y; nop */
}
a->op = 609;
break;
case 610: L610: /* call ^y; st ^z,[%sp+64] */
dumptree(a, 610);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* %^n */
&& b->op == 638 /* set ^y,^z */
&& b->x.ints[0] == 58 /* _^c */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L610; /* call ^y; st ^z,[%sp+64] */
}
a->op = 610;
break;
case 611: L611: /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
dumptree(a, 611);
a->op = 611;
break;
case 612: L612: /* sll ^y,^x,%g1; sra %g1,^x,^z */
dumptree(a, 612);
if (
a->x.ints[0] == 1 /* %^n */
&& a->x.ints[1] == 57 /* ^c */
) {
b = a->kids[0];
if (
a->syms[1]->x.name == sym[4].x.name /* 16 */
&& a->x.ints[1] == 57 /* ^c */
&& a->syms[1]->x.name == sym[4].x.name /* 16 */
&& b->count == 1
&& b->op == 634 /* ld^t [^y],^z */
&& b->x.ints[4] == 2 /* sh */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->x.ints[4] = 2; /* sh */
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L634; /* ld^t [^y],^z */
}
if (
a->syms[1]->x.name == sym[5].x.name /* 24 */
&& a->x.ints[1] == 57 /* ^c */
&& a->syms[1]->x.name == sym[5].x.name /* 24 */
&& b->count == 1
&& b->op == 634 /* ld^t [^y],^z */
&& b->x.ints[4] == 1 /* sb */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->x.ints[4] = 1; /* sb */
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L634; /* ld^t [^y],^z */
}
}
a->op = 612;
break;
case 613: L613: /* ^z: */
dumptree(a, 613);
a->op = 613;
break;
case 614: L614: /* nop */
dumptree(a, 614);
a->op = 614;
break;
case 615: L615: /* # argd */
dumptree(a, 615);
a->op = 615;
break;
case 616: L616: /* # movd */
dumptree(a, 616);
a->op = 616;
break;
case 617: L617: /* # negd */
dumptree(a, 617);
a->op = 617;
break;
case 618: L618: /* # asgnb */
dumptree(a, 618);
a->op = 618;
break;
case 619: L619: /* # reg */
dumptree(a, 619);
a->op = 619;
break;
case 620: L620: /* # ret */
dumptree(a, 620);
a->op = 620;
break;
case 621: L621: /* # label */
dumptree(a, 621);
a->op = 621;
break;
case 622: L622: /* ^f ^y,^x,^z */
dumptree(a, 622);
if (
a->x.ints[1] == 1 /* %^n */
) {
b = a->kids[1];
if (
b->op == 638 /* set ^y,^z */
&& b->x.ints[0] == 57 /* ^c */
&& range(getint(a->kids[1]->syms[0]),13)
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[1] = b->syms[0];
a->kids[4] = b->kids[3];
a->x.ints[1] = b->x.ints[0];
a->kids[1] = b->kids[0];
goto L622; /* ^f ^y,^x,^z */
}
if (
b->count == 1
&& b->op == 636 /* mov ^y,^z */
&& b->x.ints[0] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[1] = b->syms[0];
a->kids[4] = b->kids[3];
a->x.ints[1] = b->x.ints[0];
a->kids[1] = b->kids[0];
goto L622; /* ^f ^y,^x,^z */
}
}
b = a->kids[0];
if (
a->x.ints[0] == 1 /* %^n */
&& b->count == 1
&& b->op == 636 /* mov ^y,^z */
&& b->x.ints[0] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L622; /* ^f ^y,^x,^z */
}
if (
a->x.ints[3] == 2 /* and */
&& a->x.ints[0] == 1 /* %^n */
&& a->x.ints[1] == 57 /* ^c */
&& a->syms[1]->x.name == sym[2].x.name /* 0xff */
&& b->count == 1
&& b->op == 634 /* ld^t [^y],^z */
&& b->x.ints[4] == 1 /* sb */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->x.ints[4] = 3; /* ub */
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L634; /* ld^t [^y],^z */
}
a->op = 622;
break;
case 623: L623: /* f^f^t ^y,^x,^z */
dumptree(a, 623);
a->op = 623;
break;
case 624: L624: /* call ^y,2; nop */
dumptree(a, 624);
a->op = 624;
break;
case 625: L625: /* cmp ^y,^x; b^f ^z; nop */
dumptree(a, 625);
if (
a->x.ints[1] == 1 /* %^n */
) {
b = a->kids[1];
if (
b->op == 638 /* set ^y,^z */
&& b->x.ints[0] == 57 /* ^c */
&& range(getint(a->kids[1]->syms[0]),13)
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[1] = b->syms[0];
a->kids[4] = b->kids[3];
a->x.ints[1] = b->x.ints[0];
a->kids[1] = b->kids[0];
goto L625; /* cmp ^y,^x; b^f ^z; nop */
}
if (
b->count == 1
&& b->op == 636 /* mov ^y,^z */
&& b->x.ints[0] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[1] = b->syms[0];
a->kids[4] = b->kids[3];
a->x.ints[1] = b->x.ints[0];
a->kids[1] = b->kids[0];
goto L625; /* cmp ^y,^x; b^f ^z; nop */
}
}
b = a->kids[0];
if (
a->x.ints[0] == 1 /* %^n */
&& b->count == 1
&& b->op == 636 /* mov ^y,^z */
&& b->x.ints[0] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L625; /* cmp ^y,^x; b^f ^z; nop */
}
a->op = 625;
break;
case 626: L626: /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
dumptree(a, 626);
a->op = 626;
break;
case 627: L627: /* fstod ^y,^z */
dumptree(a, 627);
a->op = 627;
break;
case 628: L628: /* fdtos ^y,^z */
dumptree(a, 628);
a->op = 628;
break;
case 629: L629: /* fnegs ^y,^z */
dumptree(a, 629);
a->op = 629;
break;
case 630: L630: /* fmovd ^y,^z; fnegs ^z,^z */
dumptree(a, 630);
a->op = 630;
break;
case 631: L631: /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
dumptree(a, 631);
a->op = 631;
break;
case 632: L632: /* jmp ^y; nop */
dumptree(a, 632);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* %^n */
&& b->op == 638 /* set ^y,^z */
&& b->x.ints[0] == 58 /* _^c */
) {
--b->count;
a->x.ints[0] = 57; /* ^c */
a->syms[0] = b->syms[0];
a->kids[0] = 0;
goto L633; /* ba ^y; nop */
}
a->op = 632;
break;
case 633: L633: /* ba ^y; nop */
dumptree(a, 633);
a->op = 633;
break;
case 634: L634: /* ld^t [^y],^z */
dumptree(a, 634);
if (
a->x.ints[0] == 1 /* %^n */
) {
b = a->kids[0];
if (
b->op == 622 /* ^f ^y,^x,^z */
&& b->x.ints[3] == 1 /* add */
&& b->x.ints[0] == 57 /* ^c */
&& b->x.ints[1] == 3 /* %fp */
) {
--b->count;
a->x.ints[0] = 27; /* %fp+^c */
a->syms[0] = b->syms[0];
a->kids[0] = 0;
goto L634; /* ld^t [^y],^z */
}
if (
b->count == 1
) {
switch (b->op) {
case 622: /* ^f ^y,^x,^z */
if (
b->x.ints[3] == 1 /* add */
&& b->x.ints[0] == 1 /* %^n */
&& b->x.ints[1] == 57 /* ^c */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->x.ints[0] = 15; /* %^n+^c */
a->kids[0] = b->kids[0];
a->syms[0] = b->syms[1];
goto L634; /* ld^t [^y],^z */
}
break;
case 646: /* set ^y,%g1; add %fp,%g1,^z */
--b->count;
a->x.ints[0] = 57; /* ^c */
a->syms[0] = b->syms[0];
a->kids[0] = 0;
goto L641; /* set ^y,%g1; ld^t [%fp+%g1],^z */
}
}
}
b = a->kids[0];
if (
"\1\1\1\1\1\0\0\1\0\1"[a->x.ints[4]] /* <TMP717> */
&& a->x.ints[0] == 1 /* %^n */
&& b->count == 1
&& b->op == 622 /* ^f ^y,^x,^z */
&& b->x.ints[3] == 1 /* add */
&& b->x.ints[0] == 1 /* %^n */
&& b->x.ints[1] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[1]) ++c->count;
if (c=b->kids[0]) ++c->count;
}
a->x.ints[0] = 8; /* %^n+%^i */
a->kids[0] = b->kids[0];
a->kids[3] = b->kids[1];
goto L634; /* ld^t [^y],^z */
}
switch (a->x.ints[0]) {
case 1: /* %^n */
if (
b->count == 1
&& b->op == 636 /* mov ^y,^z */
&& b->x.ints[0] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L634; /* ld^t [^y],^z */
}
break;
case 27: /* %fp+^c */
if (
isregvar(a->syms[0])
) {
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 2; /* %^c */
goto L636; /* mov ^y,^z */
}
break;
}
a->op = 634;
break;
case 635: L635: /* ld [^y],^z; ld [^y+4],^x */
dumptree(a, 635);
a->op = 635;
break;
case 636: L636: /* mov ^y,^z */
dumptree(a, 636);
switch (a->x.ints[0]) {
case 1: /* %^n */
if (
a->kids[0]->count == 1
) {
b = a->kids[0];
switch (b->op) {
case 622: /* ^f ^y,^x,^z */
if (--b->count > 0) {
if (c=b->kids[1]) ++c->count;
if (c=b->kids[4]) ++c->count;
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->x.ints[3] = b->x.ints[3];
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->syms[1] = b->syms[1];
a->kids[4] = b->kids[4];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
goto L622; /* ^f ^y,^x,^z */
case 634: /* ld^t [^y],^z */
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->x.ints[4] = b->x.ints[4];
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L634; /* ld^t [^y],^z */
case 636: /* mov ^y,^z */
if (
b->x.ints[0] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L636; /* mov ^y,^z */
}
break;
case 638: /* set ^y,^z */
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L638; /* set ^y,^z */
case 641: /* set ^y,%g1; ld^t [%fp+%g1],^z */
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->x.ints[4] = b->x.ints[4];
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L641; /* set ^y,%g1; ld^t [%fp+%g1],^z */
}
}
break;
case 2: /* %^c */
if (
a->x.ints[2] == 2 /* %^c */
&& rmcopy(a)
) {
a->syms[2] = a->syms[0];
goto L619; /* # reg */
}
break;
}
a->op = 636;
break;
case 637: L637: /* fmov^t ^y,^z */
dumptree(a, 637);
a->op = 637;
break;
case 638: L638: /* set ^y,^z */
dumptree(a, 638);
if (
a->x.ints[0] == 57 /* ^c */
&& a->syms[0]->x.name == sym[1].x.name /* 0 */
) {
setreg(a,g0);
goto L619; /* # reg */
}
a->op = 638;
break;
case 639: L639: /* set 0xffff,%g1; and ^y,%g1,^z */
dumptree(a, 639);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* %^n */
&& b->count == 1
&& b->op == 634 /* ld^t [^y],^z */
&& b->x.ints[4] == 2 /* sh */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->x.ints[4] = 4; /* uh */
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L634; /* ld^t [^y],^z */
}
a->op = 639;
break;
case 640: L640: /* set ^z,%g1; st^t ^y,[%fp+%g1] */
dumptree(a, 640);
a->op = 640;
break;
case 641: L641: /* set ^y,%g1; ld^t [%fp+%g1],^z */
dumptree(a, 641);
a->op = 641;
break;
case 642: L642: /* st^t ^y,[^z] */
dumptree(a, 642);
if (
a->x.ints[0] == 1 /* %^n */
&& a->x.ints[2] == 35 /* %sp+4*^c+68 */
&& 6>a->syms[1]->u.c.v.i
) {
a->x.ints[2] = 2; /* %^c */
a->x.ints[0] = 1; /* %^n */
a->syms[2]=oreg[a->syms[1]->u.c.v.i];
goto L636; /* mov ^y,^z */
}
if (
a->x.ints[2] == 1 /* %^n */
) {
b = a->kids[2];
if (
b->op == 622 /* ^f ^y,^x,^z */
&& b->x.ints[3] == 1 /* add */
&& b->x.ints[0] == 57 /* ^c */
&& b->x.ints[1] == 3 /* %fp */
) {
--b->count;
a->x.ints[2] = 27; /* %fp+^c */
a->syms[2] = b->syms[0];
a->kids[2] = 0;
goto L642; /* st^t ^y,[^z] */
}
if (
b->count == 1
) {
switch (b->op) {
case 622: /* ^f ^y,^x,^z */
if (
b->x.ints[3] == 1 /* add */
&& b->x.ints[0] == 1 /* %^n */
&& b->x.ints[1] == 57 /* ^c */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->x.ints[2] = 15; /* %^n+^c */
a->kids[2] = b->kids[0];
a->syms[2] = b->syms[1];
goto L642; /* st^t ^y,[^z] */
}
break;
case 646: /* set ^y,%g1; add %fp,%g1,^z */
--b->count;
a->x.ints[2] = 57; /* ^c */
a->syms[2] = b->syms[0];
a->kids[2] = 0;
goto L640; /* set ^z,%g1; st^t ^y,[%fp+%g1] */
}
}
}
b = a->kids[2];
if (
"\1\0\0\0\0\1\1\1\0\1"[a->x.ints[4]] /* <TMP851> */
&& a->x.ints[2] == 1 /* %^n */
&& b->count == 1
&& b->op == 622 /* ^f ^y,^x,^z */
&& b->x.ints[3] == 1 /* add */
&& b->x.ints[0] == 1 /* %^n */
&& b->x.ints[1] == 1 /* %^n */
) {
if (--b->count > 0) {
if (c=b->kids[1]) ++c->count;
if (c=b->kids[0]) ++c->count;
}
a->x.ints[2] = 8; /* %^n+%^i */
a->kids[2] = b->kids[0];
a->kids[5] = b->kids[1];
goto L642; /* st^t ^y,[^z] */
}
if (
a->x.ints[2] == 1 /* %^n */
&& b->count == 1
&& b->op == 636 /* mov ^y,^z */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[2] = b->syms[0];
a->kids[5] = b->kids[3];
a->x.ints[2] = b->x.ints[0];
a->kids[2] = b->kids[0];
goto L642; /* st^t ^y,[^z] */
}
b = a->kids[0];
if (
a->x.ints[0] == 1 /* %^n */
&& b->count == 1
&& b->op == 636 /* mov ^y,^z */
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[3]) ++c->count;
}
a->syms[0] = b->syms[0];
a->kids[3] = b->kids[3];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L642; /* st^t ^y,[^z] */
}
if (
a->x.ints[2] == 27 /* %fp+^c */
&& isregvar(a->syms[2])
) {
a->x.ints[2] = 2; /* %^c */
goto L636; /* mov ^y,^z */
}
a->op = 642;
break;
case 643: L643: /* st ^y,[^z] */
dumptree(a, 643);
a->op = 643;
break;
case 644: L644: /* st ^y,[^z]; st ^x,[^z+4] */
dumptree(a, 644);
a->op = 644;
break;
case 645: L645: /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
dumptree(a, 645);
a->op = 645;
break;
case 646: L646: /* set ^y,%g1; add %fp,%g1,^z */
dumptree(a, 646);
if (
a->x.ints[2] == 2 /* %^c */
&& isregvar(a->syms[0])||range(-a->syms[0]->x.offset,13)
) {
a->x.ints[1] = 3; /* %fp */
a->x.ints[3] = 1; /* add */
goto L622; /* ^f ^y,^x,^z */
}
a->op = 646;
break;
case 647: L647: /* call ^f,2; nop */
dumptree(a, 647);
a->op = 647;
break;
default:
assert(0);
}
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.