Annotation of researchv10no/cmd/lcc/gen2/sparc/sel.c, revision 1.1.1.1

1.1       root        1: /* "set ^0,%g1; add %fp,%g1,%^c" => ="set ^y,%g1; add %fp,%g1,^z" A="^c" a=a C="%^c" */
                      2: /* "set _^0,%^c" => ="set ^y,^z" A="_^c" a=a C="%^c" */
                      3: /* "set ^0,%g1; add %fp,%g1,%^c" => ="set ^y,%g1; add %fp,%g1,^z" A="^c" a=a C="%^c" */
                      4: /* "std %f^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="d" A="%f^n" 0=0 C="%sp+4*^c+68" */
                      5: /* "st %f^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%f^n" 0=0 C="%sp+4*^c+68" */
                      6: /* "st %^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%^n" 0=0 C="%sp+4*^c+68" */
                      7: /* "st %^0,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%^n" 0=0 C="%sp+4*^c+68" */
                      8: /* "std %f^1,[%^0]" => ="st^t ^y,[^z]" E="d" A="%f^n" 0=1 C="%^n" 2=0 */
                      9: /* "st %f^1,[%^0]" => ="st^t ^y,[^z]" E="" A="%f^n" 0=1 C="%^n" 2=0 */
                     10: /* "stb %^1,[%^0]" => ="st^t ^y,[^z]" E="b" A="%^n" 0=1 C="%^n" 2=0 */
                     11: /* "st %^1,[%^0]" => ="st^t ^y,[^z]" E="" A="%^n" 0=1 C="%^n" 2=0 */
                     12: /* "st %^1,[%^0]" => ="st^t ^y,[^z]" E="" A="%^n" 0=1 C="%^n" 2=0 */
                     13: /* "sth %^1,[%^0]" => ="st^t ^y,[^z]" E="h" A="%^n" 0=1 C="%^n" 2=0 */
                     14: /* "xnor %^0,%g0,%^c" => ="^f ^y,^x,^z" D="xnor" A="%^n" 0=0 B="%g0" C="%^c" */
                     15: /* "call %^0; st %^1,[%sp+64]" => ="call ^y; st ^z,[%sp+64]" A="%^n" 0=0 C="%^n" 2=1 */
                     16: /* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
                     17: /* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
                     18: /* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
                     19: /* "call %^0; nop" => ="call ^y; nop" A="%^n" 0=0 */
                     20: /* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
                     21: /* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
                     22: /* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
                     23: /* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
                     24: /* "set ^0,%^c" => ="set ^y,^z" A="^c" a=a C="%^c" */
                     25: /* "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" */
                     26: /* "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" */
                     27: /* "and %^0,0xff,%^c" => ="^f ^y,^x,^z" D="and" A="%^n" 0=0 B="^c" b="0xff" C="%^c" */
                     28: /* "set 0xffff,%g1; and %^0,%g1,%^c" => ="set 0xffff,%g1; and ^y,%g1,^z" A="%^n" 0=0 C="%^c" */
                     29: /* "fdtos %f^n,%f^c" => ="fdtos ^y,^z" A="%f^n" C="%f^c" */
                     30: /* "fstod %f^n,%f^c" => ="fstod ^y,^z" A="%f^n" C="%f^c" */
                     31: /* "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" */
                     32: /* "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" */
                     33: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     34: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     35: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     36: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     37: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     38: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     39: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     40: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     41: /* "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" */
                     42: /* "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" */
                     43: /* "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" */
                     44: /* "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" */
                     45: /* "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" */
                     46: /* "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" */
                     47: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     48: /* "ldd [%^0],%f^c" => ="ld^t [^y],^z" E="d" A="%^n" 0=0 C="%f^c" */
                     49: /* "ld [%^0],%f^c" => ="ld^t [^y],^z" E="" A="%^n" 0=0 C="%f^c" */
                     50: /* "ld [%^0],%^c" => ="ld^t [^y],^z" E="" A="%^n" 0=0 C="%^c" */
                     51: /* "ldsh [%^0],%^c" => ="ld^t [^y],^z" E="sh" A="%^n" 0=0 C="%^c" */
                     52: /* "ld [%^0],%^c" => ="ld^t [^y],^z" E="" A="%^n" 0=0 C="%^c" */
                     53: /* "ldsb [%^0],%^c" => ="ld^t [^y],^z" E="sb" A="%^n" 0=0 C="%^c" */
                     54: /* "jmp %^0; nop" => ="jmp ^y; nop" A="%^n" 0=0 */
                     55: /* "^0:" => ="^z:" C="^c" c=a */
                     56: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     57: /* "fmovs %f^0,%f^c" => ="fmov^t ^y,^z" E="s" A="%f^n" 0=0 C="%f^c" */
                     58: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     59: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     60: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     61: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     62: /* "mov %^0,%^c" => ="mov ^y,^z" A="%^n" 0=0 C="%^c" */
                     63: /* "sll %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sll" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     64: /* "sra %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sra" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     65: /* "sll %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sll" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     66: /* "srl %^0,%^1,%^c" => ="^f ^y,^x,^z" D="srl" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     67: /* "fnegs %f^n,%f^c" => ="fnegs ^y,^z" A="%f^n" C="%f^c" */
                     68: /* "sub %g0,%^0,%^c" => ="^f ^y,^x,^z" D="sub" A="%g0" B="%^n" 1=0 C="%^c" */
                     69: /* "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" */
                     70: /* "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" */
                     71: /* "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" */
                     72: /* "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" */
                     73: /* "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" */
                     74: /* "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" */
                     75: /* "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" */
                     76: /* "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" */
                     77: /* "sub %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sub" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     78: /* "sub %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sub" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     79: /* "sub %^0,%^1,%^c" => ="^f ^y,^x,^z" D="sub" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     80: /* "xor %^0,%^1,%^c" => ="^f ^y,^x,^z" D="xor" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     81: /* "and %^0,%^1,%^c" => ="^f ^y,^x,^z" D="and" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     82: /* "add %^0,%^1,%^c" => ="^f ^y,^x,^z" D="add" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     83: /* "add %^0,%^1,%^c" => ="^f ^y,^x,^z" D="add" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     84: /* "add %^0,%^1,%^c" => ="^f ^y,^x,^z" D="add" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     85: /* "or %^0,%^1,%^c" => ="^f ^y,^x,^z" D="or" A="%^n" 0=0 B="%^n" 1=1 C="%^c" */
                     86: /* "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 */
                     87: /* "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 */
                     88: /* "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 */
                     89: /* "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 */
                     90: /* "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 */
                     91: /* "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 */
                     92: /* "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 */
                     93: /* "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 */
                     94: /* "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 */
                     95: /* "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 */
                     96: /* "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 */
                     97: /* "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 */
                     98: /* "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 */
                     99: /* "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 */
                    100: /* "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 */
                    101: /* "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 */
                    102: /* "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 */
                    103: /* "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 */
                    104: /* "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 */
                    105: /* "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 */
                    106: /* "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 */
                    107: /* "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 */
                    108: /* "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 */
                    109: /* "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 */
                    110: /* "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 */
                    111: /* "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 */
                    112: /* "call %^n; nop" => ="call ^y; nop" A="%^n" */
                    113: /* "set _^c,^z" => ="set ^y,^z" 0A="_^c" */
                    114: /* "call %^n; st ^z,[%sp+64]" => ="call ^y; st ^z,[%sp+64]" A="%^n" */
                    115: /* "set _^c,^z" => ="set ^y,^z" 0A="_^c" */
                    116: /* "cmp ^y,%^n; b^f ^z; nop" => ="cmp ^y,^x; b^f ^z; nop" B="%^n" */
                    117: /* "set ^c,^z" => ="set ^y,^z" 1A="^c" */
                    118: /* "cmp ^y,%^n; b^f ^z; nop" => ="cmp ^y,^x; b^f ^z; nop" B="%^n" */
                    119: /* "mov %^n,^z" => ="mov ^y,^z" 1A="%^n" */
                    120: /* "cmp %^n,^x; b^f ^z; nop" => ="cmp ^y,^x; b^f ^z; nop" A="%^n" */
                    121: /* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
                    122: /* "^f ^y,%^n,^z" => ="^f ^y,^x,^z" B="%^n" */
                    123: /* "set ^c,^z" => ="set ^y,^z" 1A="^c" */
                    124: /* "^f ^y,%^n,^z" => ="^f ^y,^x,^z" B="%^n" */
                    125: /* "mov %^n,^z" => ="mov ^y,^z" 1A="%^n" */
                    126: /* "^f %^n,^x,^z" => ="^f ^y,^x,^z" A="%^n" */
                    127: /* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
                    128: /* "jmp %^n; nop" => ="jmp ^y; nop" A="%^n" */
                    129: /* "set _^c,^z" => ="set ^y,^z" 0A="_^c" */
                    130: /* "ba ^c; nop" => ="ba ^y; nop" A="^c" */
                    131: /* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
                    132: /* "add ^c,%fp,^z" => ="^f ^y,^x,^z" 0D="add" 0A="^c" 0B="%fp" */
                    133: /* "ld^t [%fp+^c],^z" => ="ld^t [^y],^z" A="%fp+^c" */
                    134: /* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
                    135: /* "set ^c,%g1; ld^t [%fp+%g1],^z" => ="set ^y,%g1; ld^t [%fp+%g1],^z" A="^c" */
                    136: /* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
                    137: /* "add %^n,^c,^z" => ="^f ^y,^x,^z" 0D="add" 0A="%^n" 0B="^c" */
                    138: /* "ld^t [%^n+^c],^z" => ="ld^t [^y],^z" A="%^n+^c" */
                    139: /* "ld{sb|sh|ub|uh|""|s} [%^n],^z" => ="ld^t [^y],^z" E=@TMP717 A="%^n" */
                    140: /* "add %^n,%^n,^z" => ="^f ^y,^x,^z" 0D="add" 0A="%^n" 0B="%^n" */
                    141: /* "ld^t [%^n+%^i],^z" => ="ld^t [^y],^z" A="%^n+%^i" */
                    142: /* "ld^t [%^n],^z" => ="ld^t [^y],^z" A="%^n" */
                    143: /* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
                    144: /* "ld^t [%fp+^c],^z" => ="ld^t [^y],^z" A="%fp+^c" */
                    145: /* "mov %^c,%^c" => ="mov ^y,^z" A="%^c" C="%^c" */
                    146: /* "mov %^c,%^c" => ="mov ^y,^z" A="%^c" C="%^c" */
                    147: /* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
                    148: /* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
                    149: /* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
                    150: /* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
                    151: /* "mov %^n,^z" => ="mov ^y,^z" A="%^n" */
                    152: /* "mov %^n,^z" => ="mov ^y,^z" 0A="%^n" */
                    153: /* "set 0,^z" => ="set ^y,^z" A="^c" a="0" */
                    154: /* "set ^y,%g1; add %fp,%g1,%^c" => ="set ^y,%g1; add %fp,%g1,^z" C="%^c" */
                    155: /* "add ^y,%fp,^z" => ="^f ^y,^x,^z" D="add" B="%fp" */
                    156: /* "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" */
                    157: /* "ldsh [^y],^z" => ="ld^t [^y],^z" 0E="sh" */
                    158: /* "ldsh [^y],^z" => ="ld^t [^y],^z" E="sh" */
                    159: /* "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" */
                    160: /* "ldsb [^y],^z" => ="ld^t [^y],^z" 0E="sb" */
                    161: /* "ldsb [^y],^z" => ="ld^t [^y],^z" E="sb" */
                    162: /* "and %^n,0xff,^z" => ="^f ^y,^x,^z" D="and" A="%^n" B="^c" b="0xff" */
                    163: /* "ldsb [^y],^z" => ="ld^t [^y],^z" 0E="sb" */
                    164: /* "ldub [^y],^z" => ="ld^t [^y],^z" E="ub" */
                    165: /* "set 0xffff,%g1; and %^n,%g1,^z" => ="set 0xffff,%g1; and ^y,%g1,^z" A="%^n" */
                    166: /* "ldsh [^y],^z" => ="ld^t [^y],^z" 0E="sh" */
                    167: /* "lduh [^y],^z" => ="ld^t [^y],^z" E="uh" */
                    168: /* "st^t %^n,[%sp+4*^c+68]" => ="st^t ^y,[^z]" A="%^n" C="%sp+4*^c+68" */
                    169: /* "mov %^n,%^c" => ="mov ^y,^z" A="%^n" C="%^c" */
                    170: /* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
                    171: /* "add ^c,%fp,^z" => ="^f ^y,^x,^z" 2D="add" 2A="^c" 2B="%fp" */
                    172: /* "st^t ^y,[%fp+^c]" => ="st^t ^y,[^z]" C="%fp+^c" */
                    173: /* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
                    174: /* "set ^c,%g1; st^t ^y,[%fp+%g1]" => ="set ^z,%g1; st^t ^y,[%fp+%g1]" C="^c" */
                    175: /* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
                    176: /* "add %^n,^c,^z" => ="^f ^y,^x,^z" 2D="add" 2A="%^n" 2B="^c" */
                    177: /* "st^t ^y,[%^n+^c]" => ="st^t ^y,[^z]" C="%^n+^c" */
                    178: /* "st{b|h|""|s} ^y,[%^n]" => ="st^t ^y,[^z]" E=@TMP851 C="%^n" */
                    179: /* "add %^n,%^n,^z" => ="^f ^y,^x,^z" 2D="add" 2A="%^n" 2B="%^n" */
                    180: /* "st^t ^y,[%^n+%^i]" => ="st^t ^y,[^z]" C="%^n+%^i" */
                    181: /* "st^t ^y,[%^n]" => ="st^t ^y,[^z]" C="%^n" */
                    182: /* "st^t %^n,[^z]" => ="st^t ^y,[^z]" A="%^n" */
                    183: /* "st^t ^y,[%fp+^c]" => ="st^t ^y,[^z]" C="%fp+^c" */
                    184: /* "mov ^y,%^c" => ="mov ^y,^z" C="%^c" */
                    185: /* "ldd [^y],^z" => ="ld^t [^y],^z" E="d" */
                    186: /* "ld [^y],^z; ld [^y+4],%f^c" => ="ld [^y],^z; ld [^y+4],^x" B="%f^c" */
                    187: /* "mov %^n,%^c" => ="mov ^y,^z" A="%^n" C="%^c" */
                    188: /* "st %f^n,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="" A="%f^n" C="%sp+4*^c+68" */
                    189: /* "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" */
                    190: /* "std %f^n,[%sp+4*^c+68]" => ="st^t ^y,[^z]" E="d" A="%f^n" C="%sp+4*^c+68" */
                    191: /* "std ^y,[^z]" => ="st^t ^y,[^z]" E="d" */
                    192: /* "st ^y,[^z]; st %f^c,[^z+4]" => ="st ^y,[^z]; st ^x,[^z+4]" B="%f^c" */
                    193: /* "set _^c,^z" => ="set ^y,^z" A="_^c" */
                    194: /* "call _^c; nop" => ="call ^y; nop" A="_^c" */
                    195: /* "call _^c; st ^z,[%sp+64]" => ="call ^y; st ^z,[%sp+64]" A="_^c" */
                    196: #include "pseudos.c"
                    197: 
                    198: static char *shortopcodes[] = {
                    199: /* 608 */  "mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z",
                    200: /* 609 */  "call ^y; nop",
                    201: /* 610 */  "call ^y; st ^z,[%sp+64]",
                    202: /* 611 */  "fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z",
                    203: /* 612 */  "sll ^y,^x,%g1; sra %g1,^x,^z",
                    204: /* 613 */  "^z:",
                    205: /* 614 */  "nop",
                    206: /* 615 */  "# argd",
                    207: /* 616 */  "# movd",
                    208: /* 617 */  "# negd",
                    209: /* 618 */  "# asgnb",
                    210: /* 619 */  "# reg",
                    211: /* 620 */  "# ret",
                    212: /* 621 */  "# label",
                    213: /* 622 */  "^f ^y,^x,^z",
                    214: /* 623 */  "f^f^t ^y,^x,^z",
                    215: /* 624 */  "call ^y,2; nop",
                    216: /* 625 */  "cmp ^y,^x; b^f ^z; nop",
                    217: /* 626 */  "fcmpe^t ^y,^x; nop; fb^f ^z; nop",
                    218: /* 627 */  "fstod ^y,^z",
                    219: /* 628 */  "fdtos ^y,^z",
                    220: /* 629 */  "fnegs ^y,^z",
                    221: /* 630 */  "fmovd ^y,^z; fnegs ^z,^z",
                    222: /* 631 */  "st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z",
                    223: /* 632 */  "jmp ^y; nop",
                    224: /* 633 */  "ba ^y; nop",
                    225: /* 634 */  "ld^t [^y],^z",
                    226: /* 635 */  "ld [^y],^z; ld [^y+4],^x",
                    227: /* 636 */  "mov ^y,^z",
                    228: /* 637 */  "fmov^t ^y,^z",
                    229: /* 638 */  "set ^y,^z",
                    230: /* 639 */  "set 0xffff,%g1; and ^y,%g1,^z",
                    231: /* 640 */  "set ^z,%g1; st^t ^y,[%fp+%g1]",
                    232: /* 641 */  "set ^y,%g1; ld^t [%fp+%g1],^z",
                    233: /* 642 */  "st^t ^y,[^z]",
                    234: /* 643 */  "st ^y,[^z]",
                    235: /* 644 */  "st ^y,[^z]; st ^x,[^z+4]",
                    236: /* 645 */  "st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x",
                    237: /* 646 */  "set ^y,%g1; add %fp,%g1,^z",
                    238: /* 647 */  "call ^f,2; nop",
                    239: };
                    240: 
                    241: static char *asmstr0[] = {
                    242:        "(DUMMY)",
                    243:        "%^n",
                    244:        "%^c",
                    245:        "%fp",
                    246:        "%sp",
                    247:        "%g0",
                    248:        "%f^n",
                    249:        "%f^c",
                    250:        "%^n+%^i",
                    251:        "%^c+%^i",
                    252:        "%fp+%^i",
                    253:        "%sp+%^i",
                    254:        "%g0+%^i",
                    255:        "%f^n+%^i",
                    256:        "%f^c+%^i",
                    257:        "%^n+^c",
                    258:        "%^n+_^c",
                    259:        "%^n+4*^c+68",
                    260:        "%^n-^c",
                    261:        "%^n-_^c",
                    262:        "%^n-4*^c+68",
                    263:        "%^c+^c",
                    264:        "%^c+_^c",
                    265:        "%^c+4*^c+68",
                    266:        "%^c-^c",
                    267:        "%^c-_^c",
                    268:        "%^c-4*^c+68",
                    269:        "%fp+^c",
                    270:        "%fp+_^c",
                    271:        "%fp+4*^c+68",
                    272:        "%fp-^c",
                    273:        "%fp-_^c",
                    274:        "%fp-4*^c+68",
                    275:        "%sp+^c",
                    276:        "%sp+_^c",
                    277:        "%sp+4*^c+68",
                    278:        "%sp-^c",
                    279:        "%sp-_^c",
                    280:        "%sp-4*^c+68",
                    281:        "%g0+^c",
                    282:        "%g0+_^c",
                    283:        "%g0+4*^c+68",
                    284:        "%g0-^c",
                    285:        "%g0-_^c",
                    286:        "%g0-4*^c+68",
                    287:        "%f^n+^c",
                    288:        "%f^n+_^c",
                    289:        "%f^n+4*^c+68",
                    290:        "%f^n-^c",
                    291:        "%f^n-_^c",
                    292:        "%f^n-4*^c+68",
                    293:        "%f^c+^c",
                    294:        "%f^c+_^c",
                    295:        "%f^c+4*^c+68",
                    296:        "%f^c-^c",
                    297:        "%f^c-_^c",
                    298:        "%f^c-4*^c+68",
                    299:        "^c",
                    300:        "_^c",
                    301:        "4*^c+68",
                    302: };
                    303: 
                    304: static char *asmstr3[] = {
                    305:        "(DUMMY)",
                    306:        "add",
                    307:        "and",
                    308:        "div",
                    309:        "mul",
                    310:        "or",
                    311:        "sll",
                    312:        "sra",
                    313:        "srl",
                    314:        "sub",
                    315:        "xor",
                    316:        "xnor",
                    317:        ".udiv",
                    318:        ".umul",
                    319:        ".urem",
                    320:        ".div",
                    321:        ".mul",
                    322:        ".rem",
                    323:        "e",
                    324:        "ne",
                    325:        "gu",
                    326:        "g",
                    327:        "geu",
                    328:        "ge",
                    329:        "lu",
                    330:        "l",
                    331:        "leu",
                    332:        "le",
                    333:        "ug",
                    334:        "uge",
                    335:        "ul",
                    336:        "ule",
                    337:        "ue",
                    338: };
                    339: 
                    340: static char *asmstr4[] = {
                    341:        "(DUMMY)",
                    342:        "sb",
                    343:        "sh",
                    344:        "ub",
                    345:        "uh",
                    346:        "b",
                    347:        "h",
                    348:        "s",
                    349:        "d",
                    350:        "",
                    351: };
                    352: 
                    353: static struct symbol sym[] = {
                    354: {{"(DUMMY)"}},
                    355: {{"0"}},
                    356: {{"0xff"}},
                    357: {{"0xffff"}},
                    358: {{"16"}},
                    359: {{"24"}},
                    360: };
                    361: 
                    362: dclproto(static void rewrite,(Node));
                    363: 
                    364: dclproto(static void emit,(Node));
                    365: 
                    366: static void initgen() {
                    367:        opcodes = shortopcodes-608;
                    368:        IR->x.rewrite = rewrite;
                    369:        IR->emit = emit;
                    370:        asmstr[0] = asmstr0;
                    371:        asmstr[1] = asmstr0;
                    372:        asmstr[2] = asmstr0;
                    373:        asmstr[3] = asmstr3;
                    374:        asmstr[4] = asmstr4;
                    375:        sym[1].x.name = string("0");
                    376:        sym[2].x.name = string("0xff");
                    377:        sym[3].x.name = string("0xffff");
                    378:        sym[4].x.name = string("16");
                    379:        sym[5].x.name = string("24");
                    380: }
                    381: 
                    382: dclproto(static char *emit0,(char *, Node, int));
                    383: static char *emit0(rbp, a, n)
                    384: register char *rbp;
                    385: register Node a;
                    386: register int n;
                    387: {
                    388:        register char *cp;
                    389: 
                    390:        assert(a->x.ints[n]);
                    391:        switch (a->x.ints[n]) {
                    392:        case 0:   /* (DUMMY) */
                    393:                *rbp++ = '(';
                    394:                *rbp++ = 'D';
                    395:                *rbp++ = 'U';
                    396:                *rbp++ = 'M';
                    397:                *rbp++ = 'M';
                    398:                *rbp++ = 'Y';
                    399:                *rbp++ = ')';
                    400:                return rbp;
                    401:        case 1:   /* %^n */
                    402:                *rbp++ = '%';
                    403:                assert(a->kids[n+0]);
                    404:                assert(a->kids[n+0]->x.registered);
                    405:                assert(a->kids[n+0]->syms[RX]);
                    406:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    407:                return rbp;
                    408:        case 2:   /* %^c */
                    409:                *rbp++ = '%';
                    410:                assert(a->syms[n+0]);
                    411:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    412:                return rbp;
                    413:        case 3:   /* %fp */
                    414:                *rbp++ = '%';
                    415:                *rbp++ = 'f';
                    416:                *rbp++ = 'p';
                    417:                return rbp;
                    418:        case 4:   /* %sp */
                    419:                *rbp++ = '%';
                    420:                *rbp++ = 's';
                    421:                *rbp++ = 'p';
                    422:                return rbp;
                    423:        case 5:   /* %g0 */
                    424:                *rbp++ = '%';
                    425:                *rbp++ = 'g';
                    426:                *rbp++ = '0';
                    427:                return rbp;
                    428:        case 6:   /* %f^n */
                    429:                *rbp++ = '%';
                    430:                *rbp++ = 'f';
                    431:                assert(a->kids[n+0]);
                    432:                assert(a->kids[n+0]->x.registered);
                    433:                assert(a->kids[n+0]->syms[RX]);
                    434:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    435:                return rbp;
                    436:        case 7:   /* %f^c */
                    437:                *rbp++ = '%';
                    438:                *rbp++ = 'f';
                    439:                assert(a->syms[n+0]);
                    440:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    441:                return rbp;
                    442:        case 8:   /* %^n+%^i */
                    443:                *rbp++ = '%';
                    444:                assert(a->kids[n+0]);
                    445:                assert(a->kids[n+0]->x.registered);
                    446:                assert(a->kids[n+0]->syms[RX]);
                    447:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    448:                *rbp++ = '+';
                    449:                *rbp++ = '%';
                    450:                assert(a->kids[n+3]);
                    451:                assert(a->kids[n+3]->x.registered);
                    452:                assert(a->kids[n+3]->syms[RX]);
                    453:                for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    454:                return rbp;
                    455:        case 9:   /* %^c+%^i */
                    456:                *rbp++ = '%';
                    457:                assert(a->syms[n+0]);
                    458:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    459:                *rbp++ = '+';
                    460:                *rbp++ = '%';
                    461:                assert(a->kids[n+3]);
                    462:                assert(a->kids[n+3]->x.registered);
                    463:                assert(a->kids[n+3]->syms[RX]);
                    464:                for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    465:                return rbp;
                    466:        case 10:   /* %fp+%^i */
                    467:                *rbp++ = '%';
                    468:                *rbp++ = 'f';
                    469:                *rbp++ = 'p';
                    470:                *rbp++ = '+';
                    471:                *rbp++ = '%';
                    472:                assert(a->kids[n+3]);
                    473:                assert(a->kids[n+3]->x.registered);
                    474:                assert(a->kids[n+3]->syms[RX]);
                    475:                for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    476:                return rbp;
                    477:        case 11:   /* %sp+%^i */
                    478:                *rbp++ = '%';
                    479:                *rbp++ = 's';
                    480:                *rbp++ = 'p';
                    481:                *rbp++ = '+';
                    482:                *rbp++ = '%';
                    483:                assert(a->kids[n+3]);
                    484:                assert(a->kids[n+3]->x.registered);
                    485:                assert(a->kids[n+3]->syms[RX]);
                    486:                for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    487:                return rbp;
                    488:        case 12:   /* %g0+%^i */
                    489:                *rbp++ = '%';
                    490:                *rbp++ = 'g';
                    491:                *rbp++ = '0';
                    492:                *rbp++ = '+';
                    493:                *rbp++ = '%';
                    494:                assert(a->kids[n+3]);
                    495:                assert(a->kids[n+3]->x.registered);
                    496:                assert(a->kids[n+3]->syms[RX]);
                    497:                for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    498:                return rbp;
                    499:        case 13:   /* %f^n+%^i */
                    500:                *rbp++ = '%';
                    501:                *rbp++ = 'f';
                    502:                assert(a->kids[n+0]);
                    503:                assert(a->kids[n+0]->x.registered);
                    504:                assert(a->kids[n+0]->syms[RX]);
                    505:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    506:                *rbp++ = '+';
                    507:                *rbp++ = '%';
                    508:                assert(a->kids[n+3]);
                    509:                assert(a->kids[n+3]->x.registered);
                    510:                assert(a->kids[n+3]->syms[RX]);
                    511:                for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    512:                return rbp;
                    513:        case 14:   /* %f^c+%^i */
                    514:                *rbp++ = '%';
                    515:                *rbp++ = 'f';
                    516:                assert(a->syms[n+0]);
                    517:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    518:                *rbp++ = '+';
                    519:                *rbp++ = '%';
                    520:                assert(a->kids[n+3]);
                    521:                assert(a->kids[n+3]->x.registered);
                    522:                assert(a->kids[n+3]->syms[RX]);
                    523:                for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    524:                return rbp;
                    525:        case 15:   /* %^n+^c */
                    526:                *rbp++ = '%';
                    527:                assert(a->kids[n+0]);
                    528:                assert(a->kids[n+0]->x.registered);
                    529:                assert(a->kids[n+0]->syms[RX]);
                    530:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    531:                *rbp++ = '+';
                    532:                assert(a->syms[n+0]);
                    533:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    534:                return rbp;
                    535:        case 16:   /* %^n+_^c */
                    536:                *rbp++ = '%';
                    537:                assert(a->kids[n+0]);
                    538:                assert(a->kids[n+0]->x.registered);
                    539:                assert(a->kids[n+0]->syms[RX]);
                    540:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    541:                *rbp++ = '+';
                    542:                *rbp++ = '_';
                    543:                assert(a->syms[n+0]);
                    544:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    545:                return rbp;
                    546:        case 17:   /* %^n+4*^c+68 */
                    547:                *rbp++ = '%';
                    548:                assert(a->kids[n+0]);
                    549:                assert(a->kids[n+0]->x.registered);
                    550:                assert(a->kids[n+0]->syms[RX]);
                    551:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    552:                *rbp++ = '+';
                    553:                *rbp++ = '4';
                    554:                *rbp++ = '*';
                    555:                assert(a->syms[n+0]);
                    556:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    557:                *rbp++ = '+';
                    558:                *rbp++ = '6';
                    559:                *rbp++ = '8';
                    560:                return rbp;
                    561:        case 18:   /* %^n-^c */
                    562:                *rbp++ = '%';
                    563:                assert(a->kids[n+0]);
                    564:                assert(a->kids[n+0]->x.registered);
                    565:                assert(a->kids[n+0]->syms[RX]);
                    566:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    567:                *rbp++ = '-';
                    568:                assert(a->syms[n+0]);
                    569:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    570:                return rbp;
                    571:        case 19:   /* %^n-_^c */
                    572:                *rbp++ = '%';
                    573:                assert(a->kids[n+0]);
                    574:                assert(a->kids[n+0]->x.registered);
                    575:                assert(a->kids[n+0]->syms[RX]);
                    576:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    577:                *rbp++ = '-';
                    578:                *rbp++ = '_';
                    579:                assert(a->syms[n+0]);
                    580:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    581:                return rbp;
                    582:        case 20:   /* %^n-4*^c+68 */
                    583:                *rbp++ = '%';
                    584:                assert(a->kids[n+0]);
                    585:                assert(a->kids[n+0]->x.registered);
                    586:                assert(a->kids[n+0]->syms[RX]);
                    587:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    588:                *rbp++ = '-';
                    589:                *rbp++ = '4';
                    590:                *rbp++ = '*';
                    591:                assert(a->syms[n+0]);
                    592:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    593:                *rbp++ = '+';
                    594:                *rbp++ = '6';
                    595:                *rbp++ = '8';
                    596:                return rbp;
                    597:        case 21:   /* %^c+^c */
                    598:                *rbp++ = '%';
                    599:                assert(a->syms[n+0]);
                    600:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    601:                *rbp++ = '+';
                    602:                assert(a->syms[n+0]);
                    603:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    604:                return rbp;
                    605:        case 22:   /* %^c+_^c */
                    606:                *rbp++ = '%';
                    607:                assert(a->syms[n+0]);
                    608:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    609:                *rbp++ = '+';
                    610:                *rbp++ = '_';
                    611:                assert(a->syms[n+0]);
                    612:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    613:                return rbp;
                    614:        case 23:   /* %^c+4*^c+68 */
                    615:                *rbp++ = '%';
                    616:                assert(a->syms[n+0]);
                    617:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    618:                *rbp++ = '+';
                    619:                *rbp++ = '4';
                    620:                *rbp++ = '*';
                    621:                assert(a->syms[n+0]);
                    622:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    623:                *rbp++ = '+';
                    624:                *rbp++ = '6';
                    625:                *rbp++ = '8';
                    626:                return rbp;
                    627:        case 24:   /* %^c-^c */
                    628:                *rbp++ = '%';
                    629:                assert(a->syms[n+0]);
                    630:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    631:                *rbp++ = '-';
                    632:                assert(a->syms[n+0]);
                    633:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    634:                return rbp;
                    635:        case 25:   /* %^c-_^c */
                    636:                *rbp++ = '%';
                    637:                assert(a->syms[n+0]);
                    638:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    639:                *rbp++ = '-';
                    640:                *rbp++ = '_';
                    641:                assert(a->syms[n+0]);
                    642:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    643:                return rbp;
                    644:        case 26:   /* %^c-4*^c+68 */
                    645:                *rbp++ = '%';
                    646:                assert(a->syms[n+0]);
                    647:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    648:                *rbp++ = '-';
                    649:                *rbp++ = '4';
                    650:                *rbp++ = '*';
                    651:                assert(a->syms[n+0]);
                    652:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    653:                *rbp++ = '+';
                    654:                *rbp++ = '6';
                    655:                *rbp++ = '8';
                    656:                return rbp;
                    657:        case 27:   /* %fp+^c */
                    658:                *rbp++ = '%';
                    659:                *rbp++ = 'f';
                    660:                *rbp++ = 'p';
                    661:                *rbp++ = '+';
                    662:                assert(a->syms[n+0]);
                    663:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    664:                return rbp;
                    665:        case 28:   /* %fp+_^c */
                    666:                *rbp++ = '%';
                    667:                *rbp++ = 'f';
                    668:                *rbp++ = 'p';
                    669:                *rbp++ = '+';
                    670:                *rbp++ = '_';
                    671:                assert(a->syms[n+0]);
                    672:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    673:                return rbp;
                    674:        case 29:   /* %fp+4*^c+68 */
                    675:                *rbp++ = '%';
                    676:                *rbp++ = 'f';
                    677:                *rbp++ = 'p';
                    678:                *rbp++ = '+';
                    679:                *rbp++ = '4';
                    680:                *rbp++ = '*';
                    681:                assert(a->syms[n+0]);
                    682:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    683:                *rbp++ = '+';
                    684:                *rbp++ = '6';
                    685:                *rbp++ = '8';
                    686:                return rbp;
                    687:        case 30:   /* %fp-^c */
                    688:                *rbp++ = '%';
                    689:                *rbp++ = 'f';
                    690:                *rbp++ = 'p';
                    691:                *rbp++ = '-';
                    692:                assert(a->syms[n+0]);
                    693:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    694:                return rbp;
                    695:        case 31:   /* %fp-_^c */
                    696:                *rbp++ = '%';
                    697:                *rbp++ = 'f';
                    698:                *rbp++ = 'p';
                    699:                *rbp++ = '-';
                    700:                *rbp++ = '_';
                    701:                assert(a->syms[n+0]);
                    702:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    703:                return rbp;
                    704:        case 32:   /* %fp-4*^c+68 */
                    705:                *rbp++ = '%';
                    706:                *rbp++ = 'f';
                    707:                *rbp++ = 'p';
                    708:                *rbp++ = '-';
                    709:                *rbp++ = '4';
                    710:                *rbp++ = '*';
                    711:                assert(a->syms[n+0]);
                    712:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    713:                *rbp++ = '+';
                    714:                *rbp++ = '6';
                    715:                *rbp++ = '8';
                    716:                return rbp;
                    717:        case 33:   /* %sp+^c */
                    718:                *rbp++ = '%';
                    719:                *rbp++ = 's';
                    720:                *rbp++ = 'p';
                    721:                *rbp++ = '+';
                    722:                assert(a->syms[n+0]);
                    723:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    724:                return rbp;
                    725:        case 34:   /* %sp+_^c */
                    726:                *rbp++ = '%';
                    727:                *rbp++ = 's';
                    728:                *rbp++ = 'p';
                    729:                *rbp++ = '+';
                    730:                *rbp++ = '_';
                    731:                assert(a->syms[n+0]);
                    732:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    733:                return rbp;
                    734:        case 35:   /* %sp+4*^c+68 */
                    735:                *rbp++ = '%';
                    736:                *rbp++ = 's';
                    737:                *rbp++ = 'p';
                    738:                *rbp++ = '+';
                    739:                *rbp++ = '4';
                    740:                *rbp++ = '*';
                    741:                assert(a->syms[n+0]);
                    742:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    743:                *rbp++ = '+';
                    744:                *rbp++ = '6';
                    745:                *rbp++ = '8';
                    746:                return rbp;
                    747:        case 36:   /* %sp-^c */
                    748:                *rbp++ = '%';
                    749:                *rbp++ = 's';
                    750:                *rbp++ = 'p';
                    751:                *rbp++ = '-';
                    752:                assert(a->syms[n+0]);
                    753:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    754:                return rbp;
                    755:        case 37:   /* %sp-_^c */
                    756:                *rbp++ = '%';
                    757:                *rbp++ = 's';
                    758:                *rbp++ = 'p';
                    759:                *rbp++ = '-';
                    760:                *rbp++ = '_';
                    761:                assert(a->syms[n+0]);
                    762:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    763:                return rbp;
                    764:        case 38:   /* %sp-4*^c+68 */
                    765:                *rbp++ = '%';
                    766:                *rbp++ = 's';
                    767:                *rbp++ = 'p';
                    768:                *rbp++ = '-';
                    769:                *rbp++ = '4';
                    770:                *rbp++ = '*';
                    771:                assert(a->syms[n+0]);
                    772:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    773:                *rbp++ = '+';
                    774:                *rbp++ = '6';
                    775:                *rbp++ = '8';
                    776:                return rbp;
                    777:        case 39:   /* %g0+^c */
                    778:                *rbp++ = '%';
                    779:                *rbp++ = 'g';
                    780:                *rbp++ = '0';
                    781:                *rbp++ = '+';
                    782:                assert(a->syms[n+0]);
                    783:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    784:                return rbp;
                    785:        case 40:   /* %g0+_^c */
                    786:                *rbp++ = '%';
                    787:                *rbp++ = 'g';
                    788:                *rbp++ = '0';
                    789:                *rbp++ = '+';
                    790:                *rbp++ = '_';
                    791:                assert(a->syms[n+0]);
                    792:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    793:                return rbp;
                    794:        case 41:   /* %g0+4*^c+68 */
                    795:                *rbp++ = '%';
                    796:                *rbp++ = 'g';
                    797:                *rbp++ = '0';
                    798:                *rbp++ = '+';
                    799:                *rbp++ = '4';
                    800:                *rbp++ = '*';
                    801:                assert(a->syms[n+0]);
                    802:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    803:                *rbp++ = '+';
                    804:                *rbp++ = '6';
                    805:                *rbp++ = '8';
                    806:                return rbp;
                    807:        case 42:   /* %g0-^c */
                    808:                *rbp++ = '%';
                    809:                *rbp++ = 'g';
                    810:                *rbp++ = '0';
                    811:                *rbp++ = '-';
                    812:                assert(a->syms[n+0]);
                    813:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    814:                return rbp;
                    815:        case 43:   /* %g0-_^c */
                    816:                *rbp++ = '%';
                    817:                *rbp++ = 'g';
                    818:                *rbp++ = '0';
                    819:                *rbp++ = '-';
                    820:                *rbp++ = '_';
                    821:                assert(a->syms[n+0]);
                    822:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    823:                return rbp;
                    824:        case 44:   /* %g0-4*^c+68 */
                    825:                *rbp++ = '%';
                    826:                *rbp++ = 'g';
                    827:                *rbp++ = '0';
                    828:                *rbp++ = '-';
                    829:                *rbp++ = '4';
                    830:                *rbp++ = '*';
                    831:                assert(a->syms[n+0]);
                    832:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    833:                *rbp++ = '+';
                    834:                *rbp++ = '6';
                    835:                *rbp++ = '8';
                    836:                return rbp;
                    837:        case 45:   /* %f^n+^c */
                    838:                *rbp++ = '%';
                    839:                *rbp++ = 'f';
                    840:                assert(a->kids[n+0]);
                    841:                assert(a->kids[n+0]->x.registered);
                    842:                assert(a->kids[n+0]->syms[RX]);
                    843:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    844:                *rbp++ = '+';
                    845:                assert(a->syms[n+0]);
                    846:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    847:                return rbp;
                    848:        case 46:   /* %f^n+_^c */
                    849:                *rbp++ = '%';
                    850:                *rbp++ = 'f';
                    851:                assert(a->kids[n+0]);
                    852:                assert(a->kids[n+0]->x.registered);
                    853:                assert(a->kids[n+0]->syms[RX]);
                    854:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    855:                *rbp++ = '+';
                    856:                *rbp++ = '_';
                    857:                assert(a->syms[n+0]);
                    858:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    859:                return rbp;
                    860:        case 47:   /* %f^n+4*^c+68 */
                    861:                *rbp++ = '%';
                    862:                *rbp++ = 'f';
                    863:                assert(a->kids[n+0]);
                    864:                assert(a->kids[n+0]->x.registered);
                    865:                assert(a->kids[n+0]->syms[RX]);
                    866:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    867:                *rbp++ = '+';
                    868:                *rbp++ = '4';
                    869:                *rbp++ = '*';
                    870:                assert(a->syms[n+0]);
                    871:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    872:                *rbp++ = '+';
                    873:                *rbp++ = '6';
                    874:                *rbp++ = '8';
                    875:                return rbp;
                    876:        case 48:   /* %f^n-^c */
                    877:                *rbp++ = '%';
                    878:                *rbp++ = 'f';
                    879:                assert(a->kids[n+0]);
                    880:                assert(a->kids[n+0]->x.registered);
                    881:                assert(a->kids[n+0]->syms[RX]);
                    882:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    883:                *rbp++ = '-';
                    884:                assert(a->syms[n+0]);
                    885:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    886:                return rbp;
                    887:        case 49:   /* %f^n-_^c */
                    888:                *rbp++ = '%';
                    889:                *rbp++ = 'f';
                    890:                assert(a->kids[n+0]);
                    891:                assert(a->kids[n+0]->x.registered);
                    892:                assert(a->kids[n+0]->syms[RX]);
                    893:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    894:                *rbp++ = '-';
                    895:                *rbp++ = '_';
                    896:                assert(a->syms[n+0]);
                    897:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    898:                return rbp;
                    899:        case 50:   /* %f^n-4*^c+68 */
                    900:                *rbp++ = '%';
                    901:                *rbp++ = 'f';
                    902:                assert(a->kids[n+0]);
                    903:                assert(a->kids[n+0]->x.registered);
                    904:                assert(a->kids[n+0]->syms[RX]);
                    905:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
                    906:                *rbp++ = '-';
                    907:                *rbp++ = '4';
                    908:                *rbp++ = '*';
                    909:                assert(a->syms[n+0]);
                    910:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    911:                *rbp++ = '+';
                    912:                *rbp++ = '6';
                    913:                *rbp++ = '8';
                    914:                return rbp;
                    915:        case 51:   /* %f^c+^c */
                    916:                *rbp++ = '%';
                    917:                *rbp++ = 'f';
                    918:                assert(a->syms[n+0]);
                    919:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    920:                *rbp++ = '+';
                    921:                assert(a->syms[n+0]);
                    922:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    923:                return rbp;
                    924:        case 52:   /* %f^c+_^c */
                    925:                *rbp++ = '%';
                    926:                *rbp++ = 'f';
                    927:                assert(a->syms[n+0]);
                    928:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    929:                *rbp++ = '+';
                    930:                *rbp++ = '_';
                    931:                assert(a->syms[n+0]);
                    932:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    933:                return rbp;
                    934:        case 53:   /* %f^c+4*^c+68 */
                    935:                *rbp++ = '%';
                    936:                *rbp++ = 'f';
                    937:                assert(a->syms[n+0]);
                    938:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    939:                *rbp++ = '+';
                    940:                *rbp++ = '4';
                    941:                *rbp++ = '*';
                    942:                assert(a->syms[n+0]);
                    943:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    944:                *rbp++ = '+';
                    945:                *rbp++ = '6';
                    946:                *rbp++ = '8';
                    947:                return rbp;
                    948:        case 54:   /* %f^c-^c */
                    949:                *rbp++ = '%';
                    950:                *rbp++ = 'f';
                    951:                assert(a->syms[n+0]);
                    952:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    953:                *rbp++ = '-';
                    954:                assert(a->syms[n+0]);
                    955:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    956:                return rbp;
                    957:        case 55:   /* %f^c-_^c */
                    958:                *rbp++ = '%';
                    959:                *rbp++ = 'f';
                    960:                assert(a->syms[n+0]);
                    961:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    962:                *rbp++ = '-';
                    963:                *rbp++ = '_';
                    964:                assert(a->syms[n+0]);
                    965:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    966:                return rbp;
                    967:        case 56:   /* %f^c-4*^c+68 */
                    968:                *rbp++ = '%';
                    969:                *rbp++ = 'f';
                    970:                assert(a->syms[n+0]);
                    971:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    972:                *rbp++ = '-';
                    973:                *rbp++ = '4';
                    974:                *rbp++ = '*';
                    975:                assert(a->syms[n+0]);
                    976:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    977:                *rbp++ = '+';
                    978:                *rbp++ = '6';
                    979:                *rbp++ = '8';
                    980:                return rbp;
                    981:        case 57:   /* ^c */
                    982:                assert(a->syms[n+0]);
                    983:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    984:                return rbp;
                    985:        case 58:   /* _^c */
                    986:                *rbp++ = '_';
                    987:                assert(a->syms[n+0]);
                    988:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    989:                return rbp;
                    990:        case 59:   /* 4*^c+68 */
                    991:                *rbp++ = '4';
                    992:                *rbp++ = '*';
                    993:                assert(a->syms[n+0]);
                    994:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
                    995:                *rbp++ = '+';
                    996:                *rbp++ = '6';
                    997:                *rbp++ = '8';
                    998:                return rbp;
                    999:        }
                   1000:        return rbp;
                   1001: }
                   1002: 
                   1003: static void emit(a)
                   1004: register Node a;
                   1005: {
                   1006:        register char *cp, *rbp;
                   1007: 
                   1008:        for (; a; a = a->x.next) {
                   1009:                switch (a->op) {
                   1010:                case 608: L608:   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   1011:                        rbp = bp;
                   1012:                        *rbp++ = 'm';
                   1013:                        *rbp++ = 'o';
                   1014:                        *rbp++ = 'v';
                   1015:                        *rbp++ = ' ';
                   1016:                        rbp = emit0(rbp, a, 1);
                   1017:                        *rbp++ = ',';
                   1018:                        *rbp++ = '%';
                   1019:                        *rbp++ = 'o';
                   1020:                        *rbp++ = '1';
                   1021:                        bp = rbp; outs(";"); rbp = bp;
                   1022:                        *rbp++ = ' ';
                   1023:                        *rbp++ = 'c';
                   1024:                        *rbp++ = 'a';
                   1025:                        *rbp++ = 'l';
                   1026:                        *rbp++ = 'l';
                   1027:                        *rbp++ = ' ';
                   1028:                        assert(a->x.ints[3]);
                   1029:                        for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
                   1030:                        *rbp++ = ',';
                   1031:                        *rbp++ = '2';
                   1032:                        bp = rbp; outs(";"); rbp = bp;
                   1033:                        *rbp++ = ' ';
                   1034:                        *rbp++ = 'm';
                   1035:                        *rbp++ = 'o';
                   1036:                        *rbp++ = 'v';
                   1037:                        *rbp++ = ' ';
                   1038:                        rbp = emit0(rbp, a, 0);
                   1039:                        *rbp++ = ',';
                   1040:                        *rbp++ = '%';
                   1041:                        *rbp++ = 'o';
                   1042:                        *rbp++ = '0';
                   1043:                        bp = rbp; outs(";"); rbp = bp;
                   1044:                        *rbp++ = ' ';
                   1045:                        *rbp++ = 'm';
                   1046:                        *rbp++ = 'o';
                   1047:                        *rbp++ = 'v';
                   1048:                        *rbp++ = ' ';
                   1049:                        *rbp++ = '%';
                   1050:                        *rbp++ = 'o';
                   1051:                        *rbp++ = '0';
                   1052:                        *rbp++ = ',';
                   1053:                        rbp = emit0(rbp, a, 2);
                   1054:                        bp = rbp;
                   1055:                        outs("\n");
                   1056:                        break;
                   1057:                case 609: L609:   /* call ^y; nop */
                   1058:                        rbp = bp;
                   1059:                        *rbp++ = 'c';
                   1060:                        *rbp++ = 'a';
                   1061:                        *rbp++ = 'l';
                   1062:                        *rbp++ = 'l';
                   1063:                        *rbp++ = ' ';
                   1064:                        rbp = emit0(rbp, a, 0);
                   1065:                        bp = rbp; outs(";"); rbp = bp;
                   1066:                        *rbp++ = ' ';
                   1067:                        *rbp++ = 'n';
                   1068:                        *rbp++ = 'o';
                   1069:                        *rbp++ = 'p';
                   1070:                        bp = rbp;
                   1071:                        outs("\n");
                   1072:                        break;
                   1073:                case 610: L610:   /* call ^y; st ^z,[%sp+64] */
                   1074:                        rbp = bp;
                   1075:                        *rbp++ = 'c';
                   1076:                        *rbp++ = 'a';
                   1077:                        *rbp++ = 'l';
                   1078:                        *rbp++ = 'l';
                   1079:                        *rbp++ = ' ';
                   1080:                        rbp = emit0(rbp, a, 0);
                   1081:                        bp = rbp; outs(";"); rbp = bp;
                   1082:                        *rbp++ = ' ';
                   1083:                        *rbp++ = 's';
                   1084:                        *rbp++ = 't';
                   1085:                        *rbp++ = ' ';
                   1086:                        rbp = emit0(rbp, a, 2);
                   1087:                        *rbp++ = ',';
                   1088:                        *rbp++ = '[';
                   1089:                        *rbp++ = '%';
                   1090:                        *rbp++ = 's';
                   1091:                        *rbp++ = 'p';
                   1092:                        *rbp++ = '+';
                   1093:                        *rbp++ = '6';
                   1094:                        *rbp++ = '4';
                   1095:                        *rbp++ = ']';
                   1096:                        bp = rbp;
                   1097:                        outs("\n");
                   1098:                        break;
                   1099:                case 611: L611:   /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
                   1100:                        rbp = bp;
                   1101:                        *rbp++ = 'f';
                   1102:                        *rbp++ = 'd';
                   1103:                        *rbp++ = 't';
                   1104:                        *rbp++ = 'o';
                   1105:                        *rbp++ = 'i';
                   1106:                        *rbp++ = ' ';
                   1107:                        rbp = emit0(rbp, a, 0);
                   1108:                        *rbp++ = ',';
                   1109:                        *rbp++ = '%';
                   1110:                        *rbp++ = 'f';
                   1111:                        *rbp++ = '0';
                   1112:                        bp = rbp; outs(";"); rbp = bp;
                   1113:                        *rbp++ = ' ';
                   1114:                        *rbp++ = 's';
                   1115:                        *rbp++ = 't';
                   1116:                        *rbp++ = ' ';
                   1117:                        *rbp++ = '%';
                   1118:                        *rbp++ = 'f';
                   1119:                        *rbp++ = '0';
                   1120:                        *rbp++ = ',';
                   1121:                        *rbp++ = '[';
                   1122:                        *rbp++ = '%';
                   1123:                        *rbp++ = 's';
                   1124:                        *rbp++ = 'p';
                   1125:                        *rbp++ = '+';
                   1126:                        *rbp++ = '6';
                   1127:                        *rbp++ = '4';
                   1128:                        *rbp++ = ']';
                   1129:                        bp = rbp; outs(";"); rbp = bp;
                   1130:                        *rbp++ = ' ';
                   1131:                        *rbp++ = 'l';
                   1132:                        *rbp++ = 'd';
                   1133:                        *rbp++ = ' ';
                   1134:                        *rbp++ = '[';
                   1135:                        *rbp++ = '%';
                   1136:                        *rbp++ = 's';
                   1137:                        *rbp++ = 'p';
                   1138:                        *rbp++ = '+';
                   1139:                        *rbp++ = '6';
                   1140:                        *rbp++ = '4';
                   1141:                        *rbp++ = ']';
                   1142:                        *rbp++ = ',';
                   1143:                        rbp = emit0(rbp, a, 2);
                   1144:                        bp = rbp;
                   1145:                        outs("\n");
                   1146:                        break;
                   1147:                case 612: L612:   /* sll ^y,^x,%g1; sra %g1,^x,^z */
                   1148:                        rbp = bp;
                   1149:                        *rbp++ = 's';
                   1150:                        *rbp++ = 'l';
                   1151:                        *rbp++ = 'l';
                   1152:                        *rbp++ = ' ';
                   1153:                        rbp = emit0(rbp, a, 0);
                   1154:                        *rbp++ = ',';
                   1155:                        rbp = emit0(rbp, a, 1);
                   1156:                        *rbp++ = ',';
                   1157:                        *rbp++ = '%';
                   1158:                        *rbp++ = 'g';
                   1159:                        *rbp++ = '1';
                   1160:                        bp = rbp; outs(";"); rbp = bp;
                   1161:                        *rbp++ = ' ';
                   1162:                        *rbp++ = 's';
                   1163:                        *rbp++ = 'r';
                   1164:                        *rbp++ = 'a';
                   1165:                        *rbp++ = ' ';
                   1166:                        *rbp++ = '%';
                   1167:                        *rbp++ = 'g';
                   1168:                        *rbp++ = '1';
                   1169:                        *rbp++ = ',';
                   1170:                        rbp = emit0(rbp, a, 1);
                   1171:                        *rbp++ = ',';
                   1172:                        rbp = emit0(rbp, a, 2);
                   1173:                        bp = rbp;
                   1174:                        outs("\n");
                   1175:                        break;
                   1176:                case 613: L613:   /* ^z: */
                   1177:                        rbp = bp;
                   1178:                        rbp = emit0(rbp, a, 2);
                   1179:                        *rbp++ = ':';
                   1180:                        bp = rbp;
                   1181:                        outs("\n");
                   1182:                        break;
                   1183:                case 614: L614:   /* nop */
                   1184:                        rbp = bp;
                   1185:                        *rbp++ = 'n';
                   1186:                        *rbp++ = 'o';
                   1187:                        *rbp++ = 'p';
                   1188:                        bp = rbp;
                   1189:                        outs("\n");
                   1190:                        break;
                   1191:                case 615: L615:   /* # argd */
                   1192:                        (*IR->x.emitspecial)(a);
                   1193:                        break;
                   1194:                case 616: L616:   /* # movd */
                   1195:                        (*IR->x.emitspecial)(a);
                   1196:                        break;
                   1197:                case 617: L617:   /* # negd */
                   1198:                        (*IR->x.emitspecial)(a);
                   1199:                        break;
                   1200:                case 618: L618:   /* # asgnb */
                   1201:                        (*IR->x.emitspecial)(a);
                   1202:                        break;
                   1203:                case 619: L619:   /* # reg */
                   1204:                        (*IR->x.emitspecial)(a);
                   1205:                        break;
                   1206:                case 620: L620:   /* # ret */
                   1207:                        (*IR->x.emitspecial)(a);
                   1208:                        break;
                   1209:                case 621: L621:   /* # label */
                   1210:                        (*IR->x.emitspecial)(a);
                   1211:                        break;
                   1212:                case 622: L622:   /* ^f ^y,^x,^z */
                   1213:                        rbp = bp;
                   1214:                        assert(a->x.ints[3]);
                   1215:                        for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
                   1216:                        *rbp++ = ' ';
                   1217:                        rbp = emit0(rbp, a, 0);
                   1218:                        *rbp++ = ',';
                   1219:                        rbp = emit0(rbp, a, 1);
                   1220:                        *rbp++ = ',';
                   1221:                        rbp = emit0(rbp, a, 2);
                   1222:                        bp = rbp;
                   1223:                        outs("\n");
                   1224:                        break;
                   1225:                case 623: L623:   /* f^f^t ^y,^x,^z */
                   1226:                        rbp = bp;
                   1227:                        *rbp++ = 'f';
                   1228:                        assert(a->x.ints[3]);
                   1229:                        for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
                   1230:                        assert(a->x.ints[4]);
                   1231:                        for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
                   1232:                        *rbp++ = ' ';
                   1233:                        rbp = emit0(rbp, a, 0);
                   1234:                        *rbp++ = ',';
                   1235:                        rbp = emit0(rbp, a, 1);
                   1236:                        *rbp++ = ',';
                   1237:                        rbp = emit0(rbp, a, 2);
                   1238:                        bp = rbp;
                   1239:                        outs("\n");
                   1240:                        break;
                   1241:                case 624: L624:   /* call ^y,2; nop */
                   1242:                        rbp = bp;
                   1243:                        *rbp++ = 'c';
                   1244:                        *rbp++ = 'a';
                   1245:                        *rbp++ = 'l';
                   1246:                        *rbp++ = 'l';
                   1247:                        *rbp++ = ' ';
                   1248:                        rbp = emit0(rbp, a, 0);
                   1249:                        *rbp++ = ',';
                   1250:                        *rbp++ = '2';
                   1251:                        bp = rbp; outs(";"); rbp = bp;
                   1252:                        *rbp++ = ' ';
                   1253:                        *rbp++ = 'n';
                   1254:                        *rbp++ = 'o';
                   1255:                        *rbp++ = 'p';
                   1256:                        bp = rbp;
                   1257:                        outs("\n");
                   1258:                        break;
                   1259:                case 625: L625:   /* cmp ^y,^x; b^f ^z; nop */
                   1260:                        rbp = bp;
                   1261:                        *rbp++ = 'c';
                   1262:                        *rbp++ = 'm';
                   1263:                        *rbp++ = 'p';
                   1264:                        *rbp++ = ' ';
                   1265:                        rbp = emit0(rbp, a, 0);
                   1266:                        *rbp++ = ',';
                   1267:                        rbp = emit0(rbp, a, 1);
                   1268:                        bp = rbp; outs(";"); rbp = bp;
                   1269:                        *rbp++ = ' ';
                   1270:                        *rbp++ = 'b';
                   1271:                        assert(a->x.ints[3]);
                   1272:                        for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
                   1273:                        *rbp++ = ' ';
                   1274:                        rbp = emit0(rbp, a, 2);
                   1275:                        bp = rbp; outs(";"); rbp = bp;
                   1276:                        *rbp++ = ' ';
                   1277:                        *rbp++ = 'n';
                   1278:                        *rbp++ = 'o';
                   1279:                        *rbp++ = 'p';
                   1280:                        bp = rbp;
                   1281:                        outs("\n");
                   1282:                        break;
                   1283:                case 626: L626:   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   1284:                        rbp = bp;
                   1285:                        *rbp++ = 'f';
                   1286:                        *rbp++ = 'c';
                   1287:                        *rbp++ = 'm';
                   1288:                        *rbp++ = 'p';
                   1289:                        *rbp++ = 'e';
                   1290:                        assert(a->x.ints[4]);
                   1291:                        for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
                   1292:                        *rbp++ = ' ';
                   1293:                        rbp = emit0(rbp, a, 0);
                   1294:                        *rbp++ = ',';
                   1295:                        rbp = emit0(rbp, a, 1);
                   1296:                        bp = rbp; outs(";"); rbp = bp;
                   1297:                        *rbp++ = ' ';
                   1298:                        *rbp++ = 'n';
                   1299:                        *rbp++ = 'o';
                   1300:                        *rbp++ = 'p';
                   1301:                        bp = rbp; outs(";"); rbp = bp;
                   1302:                        *rbp++ = ' ';
                   1303:                        *rbp++ = 'f';
                   1304:                        *rbp++ = 'b';
                   1305:                        assert(a->x.ints[3]);
                   1306:                        for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
                   1307:                        *rbp++ = ' ';
                   1308:                        rbp = emit0(rbp, a, 2);
                   1309:                        bp = rbp; outs(";"); rbp = bp;
                   1310:                        *rbp++ = ' ';
                   1311:                        *rbp++ = 'n';
                   1312:                        *rbp++ = 'o';
                   1313:                        *rbp++ = 'p';
                   1314:                        bp = rbp;
                   1315:                        outs("\n");
                   1316:                        break;
                   1317:                case 627: L627:   /* fstod ^y,^z */
                   1318:                        rbp = bp;
                   1319:                        *rbp++ = 'f';
                   1320:                        *rbp++ = 's';
                   1321:                        *rbp++ = 't';
                   1322:                        *rbp++ = 'o';
                   1323:                        *rbp++ = 'd';
                   1324:                        *rbp++ = ' ';
                   1325:                        rbp = emit0(rbp, a, 0);
                   1326:                        *rbp++ = ',';
                   1327:                        rbp = emit0(rbp, a, 2);
                   1328:                        bp = rbp;
                   1329:                        outs("\n");
                   1330:                        break;
                   1331:                case 628: L628:   /* fdtos ^y,^z */
                   1332:                        rbp = bp;
                   1333:                        *rbp++ = 'f';
                   1334:                        *rbp++ = 'd';
                   1335:                        *rbp++ = 't';
                   1336:                        *rbp++ = 'o';
                   1337:                        *rbp++ = 's';
                   1338:                        *rbp++ = ' ';
                   1339:                        rbp = emit0(rbp, a, 0);
                   1340:                        *rbp++ = ',';
                   1341:                        rbp = emit0(rbp, a, 2);
                   1342:                        bp = rbp;
                   1343:                        outs("\n");
                   1344:                        break;
                   1345:                case 629: L629:   /* fnegs ^y,^z */
                   1346:                        rbp = bp;
                   1347:                        *rbp++ = 'f';
                   1348:                        *rbp++ = 'n';
                   1349:                        *rbp++ = 'e';
                   1350:                        *rbp++ = 'g';
                   1351:                        *rbp++ = 's';
                   1352:                        *rbp++ = ' ';
                   1353:                        rbp = emit0(rbp, a, 0);
                   1354:                        *rbp++ = ',';
                   1355:                        rbp = emit0(rbp, a, 2);
                   1356:                        bp = rbp;
                   1357:                        outs("\n");
                   1358:                        break;
                   1359:                case 630: L630:   /* fmovd ^y,^z; fnegs ^z,^z */
                   1360:                        rbp = bp;
                   1361:                        *rbp++ = 'f';
                   1362:                        *rbp++ = 'm';
                   1363:                        *rbp++ = 'o';
                   1364:                        *rbp++ = 'v';
                   1365:                        *rbp++ = 'd';
                   1366:                        *rbp++ = ' ';
                   1367:                        rbp = emit0(rbp, a, 0);
                   1368:                        *rbp++ = ',';
                   1369:                        rbp = emit0(rbp, a, 2);
                   1370:                        bp = rbp; outs(";"); rbp = bp;
                   1371:                        *rbp++ = ' ';
                   1372:                        *rbp++ = 'f';
                   1373:                        *rbp++ = 'n';
                   1374:                        *rbp++ = 'e';
                   1375:                        *rbp++ = 'g';
                   1376:                        *rbp++ = 's';
                   1377:                        *rbp++ = ' ';
                   1378:                        rbp = emit0(rbp, a, 2);
                   1379:                        *rbp++ = ',';
                   1380:                        rbp = emit0(rbp, a, 2);
                   1381:                        bp = rbp;
                   1382:                        outs("\n");
                   1383:                        break;
                   1384:                case 631: L631:   /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
                   1385:                        rbp = bp;
                   1386:                        *rbp++ = 's';
                   1387:                        *rbp++ = 't';
                   1388:                        *rbp++ = ' ';
                   1389:                        rbp = emit0(rbp, a, 0);
                   1390:                        *rbp++ = ',';
                   1391:                        *rbp++ = '[';
                   1392:                        *rbp++ = '%';
                   1393:                        *rbp++ = 's';
                   1394:                        *rbp++ = 'p';
                   1395:                        *rbp++ = '+';
                   1396:                        *rbp++ = '6';
                   1397:                        *rbp++ = '4';
                   1398:                        *rbp++ = ']';
                   1399:                        bp = rbp; outs(";"); rbp = bp;
                   1400:                        *rbp++ = ' ';
                   1401:                        *rbp++ = 'l';
                   1402:                        *rbp++ = 'd';
                   1403:                        *rbp++ = ' ';
                   1404:                        *rbp++ = '[';
                   1405:                        *rbp++ = '%';
                   1406:                        *rbp++ = 's';
                   1407:                        *rbp++ = 'p';
                   1408:                        *rbp++ = '+';
                   1409:                        *rbp++ = '6';
                   1410:                        *rbp++ = '4';
                   1411:                        *rbp++ = ']';
                   1412:                        *rbp++ = ',';
                   1413:                        rbp = emit0(rbp, a, 2);
                   1414:                        bp = rbp; outs(";"); rbp = bp;
                   1415:                        *rbp++ = ' ';
                   1416:                        *rbp++ = 'f';
                   1417:                        *rbp++ = 'i';
                   1418:                        *rbp++ = 't';
                   1419:                        *rbp++ = 'o';
                   1420:                        *rbp++ = 'd';
                   1421:                        *rbp++ = ' ';
                   1422:                        rbp = emit0(rbp, a, 2);
                   1423:                        *rbp++ = ',';
                   1424:                        rbp = emit0(rbp, a, 2);
                   1425:                        bp = rbp;
                   1426:                        outs("\n");
                   1427:                        break;
                   1428:                case 632: L632:   /* jmp ^y; nop */
                   1429:                        rbp = bp;
                   1430:                        *rbp++ = 'j';
                   1431:                        *rbp++ = 'm';
                   1432:                        *rbp++ = 'p';
                   1433:                        *rbp++ = ' ';
                   1434:                        rbp = emit0(rbp, a, 0);
                   1435:                        bp = rbp; outs(";"); rbp = bp;
                   1436:                        *rbp++ = ' ';
                   1437:                        *rbp++ = 'n';
                   1438:                        *rbp++ = 'o';
                   1439:                        *rbp++ = 'p';
                   1440:                        bp = rbp;
                   1441:                        outs("\n");
                   1442:                        break;
                   1443:                case 633: L633:   /* ba ^y; nop */
                   1444:                        rbp = bp;
                   1445:                        *rbp++ = 'b';
                   1446:                        *rbp++ = 'a';
                   1447:                        *rbp++ = ' ';
                   1448:                        rbp = emit0(rbp, a, 0);
                   1449:                        bp = rbp; outs(";"); rbp = bp;
                   1450:                        *rbp++ = ' ';
                   1451:                        *rbp++ = 'n';
                   1452:                        *rbp++ = 'o';
                   1453:                        *rbp++ = 'p';
                   1454:                        bp = rbp;
                   1455:                        outs("\n");
                   1456:                        break;
                   1457:                case 634: L634:   /* ld^t [^y],^z */
                   1458:                        rbp = bp;
                   1459:                        *rbp++ = 'l';
                   1460:                        *rbp++ = 'd';
                   1461:                        assert(a->x.ints[4]);
                   1462:                        for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
                   1463:                        *rbp++ = ' ';
                   1464:                        *rbp++ = '[';
                   1465:                        rbp = emit0(rbp, a, 0);
                   1466:                        *rbp++ = ']';
                   1467:                        *rbp++ = ',';
                   1468:                        rbp = emit0(rbp, a, 2);
                   1469:                        bp = rbp;
                   1470:                        outs("\n");
                   1471:                        break;
                   1472:                case 635: L635:   /* ld [^y],^z; ld [^y+4],^x */
                   1473:                        rbp = bp;
                   1474:                        *rbp++ = 'l';
                   1475:                        *rbp++ = 'd';
                   1476:                        *rbp++ = ' ';
                   1477:                        *rbp++ = '[';
                   1478:                        rbp = emit0(rbp, a, 0);
                   1479:                        *rbp++ = ']';
                   1480:                        *rbp++ = ',';
                   1481:                        rbp = emit0(rbp, a, 2);
                   1482:                        bp = rbp; outs(";"); rbp = bp;
                   1483:                        *rbp++ = ' ';
                   1484:                        *rbp++ = 'l';
                   1485:                        *rbp++ = 'd';
                   1486:                        *rbp++ = ' ';
                   1487:                        *rbp++ = '[';
                   1488:                        rbp = emit0(rbp, a, 0);
                   1489:                        *rbp++ = '+';
                   1490:                        *rbp++ = '4';
                   1491:                        *rbp++ = ']';
                   1492:                        *rbp++ = ',';
                   1493:                        rbp = emit0(rbp, a, 1);
                   1494:                        bp = rbp;
                   1495:                        outs("\n");
                   1496:                        break;
                   1497:                case 636: L636:   /* mov ^y,^z */
                   1498:                        rbp = bp;
                   1499:                        *rbp++ = 'm';
                   1500:                        *rbp++ = 'o';
                   1501:                        *rbp++ = 'v';
                   1502:                        *rbp++ = ' ';
                   1503:                        rbp = emit0(rbp, a, 0);
                   1504:                        *rbp++ = ',';
                   1505:                        rbp = emit0(rbp, a, 2);
                   1506:                        bp = rbp;
                   1507:                        outs("\n");
                   1508:                        break;
                   1509:                case 637: L637:   /* fmov^t ^y,^z */
                   1510:                        rbp = bp;
                   1511:                        *rbp++ = 'f';
                   1512:                        *rbp++ = 'm';
                   1513:                        *rbp++ = 'o';
                   1514:                        *rbp++ = 'v';
                   1515:                        assert(a->x.ints[4]);
                   1516:                        for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
                   1517:                        *rbp++ = ' ';
                   1518:                        rbp = emit0(rbp, a, 0);
                   1519:                        *rbp++ = ',';
                   1520:                        rbp = emit0(rbp, a, 2);
                   1521:                        bp = rbp;
                   1522:                        outs("\n");
                   1523:                        break;
                   1524:                case 638: L638:   /* set ^y,^z */
                   1525:                        rbp = bp;
                   1526:                        *rbp++ = 's';
                   1527:                        *rbp++ = 'e';
                   1528:                        *rbp++ = 't';
                   1529:                        *rbp++ = ' ';
                   1530:                        rbp = emit0(rbp, a, 0);
                   1531:                        *rbp++ = ',';
                   1532:                        rbp = emit0(rbp, a, 2);
                   1533:                        bp = rbp;
                   1534:                        outs("\n");
                   1535:                        break;
                   1536:                case 639: L639:   /* set 0xffff,%g1; and ^y,%g1,^z */
                   1537:                        rbp = bp;
                   1538:                        *rbp++ = 's';
                   1539:                        *rbp++ = 'e';
                   1540:                        *rbp++ = 't';
                   1541:                        *rbp++ = ' ';
                   1542:                        *rbp++ = '0';
                   1543:                        *rbp++ = 'x';
                   1544:                        *rbp++ = 'f';
                   1545:                        *rbp++ = 'f';
                   1546:                        *rbp++ = 'f';
                   1547:                        *rbp++ = 'f';
                   1548:                        *rbp++ = ',';
                   1549:                        *rbp++ = '%';
                   1550:                        *rbp++ = 'g';
                   1551:                        *rbp++ = '1';
                   1552:                        bp = rbp; outs(";"); rbp = bp;
                   1553:                        *rbp++ = ' ';
                   1554:                        *rbp++ = 'a';
                   1555:                        *rbp++ = 'n';
                   1556:                        *rbp++ = 'd';
                   1557:                        *rbp++ = ' ';
                   1558:                        rbp = emit0(rbp, a, 0);
                   1559:                        *rbp++ = ',';
                   1560:                        *rbp++ = '%';
                   1561:                        *rbp++ = 'g';
                   1562:                        *rbp++ = '1';
                   1563:                        *rbp++ = ',';
                   1564:                        rbp = emit0(rbp, a, 2);
                   1565:                        bp = rbp;
                   1566:                        outs("\n");
                   1567:                        break;
                   1568:                case 640: L640:   /* set ^z,%g1; st^t ^y,[%fp+%g1] */
                   1569:                        rbp = bp;
                   1570:                        *rbp++ = 's';
                   1571:                        *rbp++ = 'e';
                   1572:                        *rbp++ = 't';
                   1573:                        *rbp++ = ' ';
                   1574:                        rbp = emit0(rbp, a, 2);
                   1575:                        *rbp++ = ',';
                   1576:                        *rbp++ = '%';
                   1577:                        *rbp++ = 'g';
                   1578:                        *rbp++ = '1';
                   1579:                        bp = rbp; outs(";"); rbp = bp;
                   1580:                        *rbp++ = ' ';
                   1581:                        *rbp++ = 's';
                   1582:                        *rbp++ = 't';
                   1583:                        assert(a->x.ints[4]);
                   1584:                        for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
                   1585:                        *rbp++ = ' ';
                   1586:                        rbp = emit0(rbp, a, 0);
                   1587:                        *rbp++ = ',';
                   1588:                        *rbp++ = '[';
                   1589:                        *rbp++ = '%';
                   1590:                        *rbp++ = 'f';
                   1591:                        *rbp++ = 'p';
                   1592:                        *rbp++ = '+';
                   1593:                        *rbp++ = '%';
                   1594:                        *rbp++ = 'g';
                   1595:                        *rbp++ = '1';
                   1596:                        *rbp++ = ']';
                   1597:                        bp = rbp;
                   1598:                        outs("\n");
                   1599:                        break;
                   1600:                case 641: L641:   /* set ^y,%g1; ld^t [%fp+%g1],^z */
                   1601:                        rbp = bp;
                   1602:                        *rbp++ = 's';
                   1603:                        *rbp++ = 'e';
                   1604:                        *rbp++ = 't';
                   1605:                        *rbp++ = ' ';
                   1606:                        rbp = emit0(rbp, a, 0);
                   1607:                        *rbp++ = ',';
                   1608:                        *rbp++ = '%';
                   1609:                        *rbp++ = 'g';
                   1610:                        *rbp++ = '1';
                   1611:                        bp = rbp; outs(";"); rbp = bp;
                   1612:                        *rbp++ = ' ';
                   1613:                        *rbp++ = 'l';
                   1614:                        *rbp++ = 'd';
                   1615:                        assert(a->x.ints[4]);
                   1616:                        for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
                   1617:                        *rbp++ = ' ';
                   1618:                        *rbp++ = '[';
                   1619:                        *rbp++ = '%';
                   1620:                        *rbp++ = 'f';
                   1621:                        *rbp++ = 'p';
                   1622:                        *rbp++ = '+';
                   1623:                        *rbp++ = '%';
                   1624:                        *rbp++ = 'g';
                   1625:                        *rbp++ = '1';
                   1626:                        *rbp++ = ']';
                   1627:                        *rbp++ = ',';
                   1628:                        rbp = emit0(rbp, a, 2);
                   1629:                        bp = rbp;
                   1630:                        outs("\n");
                   1631:                        break;
                   1632:                case 642: L642:   /* st^t ^y,[^z] */
                   1633:                        rbp = bp;
                   1634:                        *rbp++ = 's';
                   1635:                        *rbp++ = 't';
                   1636:                        assert(a->x.ints[4]);
                   1637:                        for (cp = asmstr4[a->x.ints[4]]; *cp; *rbp++ = *cp++);
                   1638:                        *rbp++ = ' ';
                   1639:                        rbp = emit0(rbp, a, 0);
                   1640:                        *rbp++ = ',';
                   1641:                        *rbp++ = '[';
                   1642:                        rbp = emit0(rbp, a, 2);
                   1643:                        *rbp++ = ']';
                   1644:                        bp = rbp;
                   1645:                        outs("\n");
                   1646:                        break;
                   1647:                case 643: L643:   /* st ^y,[^z] */
                   1648:                        rbp = bp;
                   1649:                        *rbp++ = 's';
                   1650:                        *rbp++ = 't';
                   1651:                        *rbp++ = ' ';
                   1652:                        rbp = emit0(rbp, a, 0);
                   1653:                        *rbp++ = ',';
                   1654:                        *rbp++ = '[';
                   1655:                        rbp = emit0(rbp, a, 2);
                   1656:                        *rbp++ = ']';
                   1657:                        bp = rbp;
                   1658:                        outs("\n");
                   1659:                        break;
                   1660:                case 644: L644:   /* st ^y,[^z]; st ^x,[^z+4] */
                   1661:                        rbp = bp;
                   1662:                        *rbp++ = 's';
                   1663:                        *rbp++ = 't';
                   1664:                        *rbp++ = ' ';
                   1665:                        rbp = emit0(rbp, a, 0);
                   1666:                        *rbp++ = ',';
                   1667:                        *rbp++ = '[';
                   1668:                        rbp = emit0(rbp, a, 2);
                   1669:                        *rbp++ = ']';
                   1670:                        bp = rbp; outs(";"); rbp = bp;
                   1671:                        *rbp++ = ' ';
                   1672:                        *rbp++ = 's';
                   1673:                        *rbp++ = 't';
                   1674:                        *rbp++ = ' ';
                   1675:                        rbp = emit0(rbp, a, 1);
                   1676:                        *rbp++ = ',';
                   1677:                        *rbp++ = '[';
                   1678:                        rbp = emit0(rbp, a, 2);
                   1679:                        *rbp++ = '+';
                   1680:                        *rbp++ = '4';
                   1681:                        *rbp++ = ']';
                   1682:                        bp = rbp;
                   1683:                        outs("\n");
                   1684:                        break;
                   1685:                case 645: L645:   /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
                   1686:                        rbp = bp;
                   1687:                        *rbp++ = 's';
                   1688:                        *rbp++ = 't';
                   1689:                        *rbp++ = ' ';
                   1690:                        rbp = emit0(rbp, a, 0);
                   1691:                        *rbp++ = ',';
                   1692:                        *rbp++ = '[';
                   1693:                        *rbp++ = '%';
                   1694:                        *rbp++ = 's';
                   1695:                        *rbp++ = 'p';
                   1696:                        *rbp++ = '+';
                   1697:                        *rbp++ = '4';
                   1698:                        *rbp++ = '*';
                   1699:                        rbp = emit0(rbp, a, 2);
                   1700:                        *rbp++ = '+';
                   1701:                        *rbp++ = '6';
                   1702:                        *rbp++ = '8';
                   1703:                        *rbp++ = ']';
                   1704:                        bp = rbp; outs(";"); rbp = bp;
                   1705:                        *rbp++ = ' ';
                   1706:                        *rbp++ = 'l';
                   1707:                        *rbp++ = 'd';
                   1708:                        *rbp++ = ' ';
                   1709:                        *rbp++ = '[';
                   1710:                        *rbp++ = '%';
                   1711:                        *rbp++ = 's';
                   1712:                        *rbp++ = 'p';
                   1713:                        *rbp++ = '+';
                   1714:                        *rbp++ = '4';
                   1715:                        *rbp++ = '*';
                   1716:                        rbp = emit0(rbp, a, 2);
                   1717:                        *rbp++ = '+';
                   1718:                        *rbp++ = '6';
                   1719:                        *rbp++ = '8';
                   1720:                        *rbp++ = ']';
                   1721:                        *rbp++ = ',';
                   1722:                        *rbp++ = '%';
                   1723:                        *rbp++ = 'o';
                   1724:                        rbp = emit0(rbp, a, 1);
                   1725:                        bp = rbp;
                   1726:                        outs("\n");
                   1727:                        break;
                   1728:                case 646: L646:   /* set ^y,%g1; add %fp,%g1,^z */
                   1729:                        rbp = bp;
                   1730:                        *rbp++ = 's';
                   1731:                        *rbp++ = 'e';
                   1732:                        *rbp++ = 't';
                   1733:                        *rbp++ = ' ';
                   1734:                        rbp = emit0(rbp, a, 0);
                   1735:                        *rbp++ = ',';
                   1736:                        *rbp++ = '%';
                   1737:                        *rbp++ = 'g';
                   1738:                        *rbp++ = '1';
                   1739:                        bp = rbp; outs(";"); rbp = bp;
                   1740:                        *rbp++ = ' ';
                   1741:                        *rbp++ = 'a';
                   1742:                        *rbp++ = 'd';
                   1743:                        *rbp++ = 'd';
                   1744:                        *rbp++ = ' ';
                   1745:                        *rbp++ = '%';
                   1746:                        *rbp++ = 'f';
                   1747:                        *rbp++ = 'p';
                   1748:                        *rbp++ = ',';
                   1749:                        *rbp++ = '%';
                   1750:                        *rbp++ = 'g';
                   1751:                        *rbp++ = '1';
                   1752:                        *rbp++ = ',';
                   1753:                        rbp = emit0(rbp, a, 2);
                   1754:                        bp = rbp;
                   1755:                        outs("\n");
                   1756:                        break;
                   1757:                case 647: L647:   /* call ^f,2; nop */
                   1758:                        rbp = bp;
                   1759:                        *rbp++ = 'c';
                   1760:                        *rbp++ = 'a';
                   1761:                        *rbp++ = 'l';
                   1762:                        *rbp++ = 'l';
                   1763:                        *rbp++ = ' ';
                   1764:                        assert(a->x.ints[3]);
                   1765:                        for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
                   1766:                        *rbp++ = ',';
                   1767:                        *rbp++ = '2';
                   1768:                        bp = rbp; outs(";"); rbp = bp;
                   1769:                        *rbp++ = ' ';
                   1770:                        *rbp++ = 'n';
                   1771:                        *rbp++ = 'o';
                   1772:                        *rbp++ = 'p';
                   1773:                        bp = rbp;
                   1774:                        outs("\n");
                   1775:                        break;
                   1776:                }
                   1777:        }
                   1778: }
                   1779: 
                   1780: static void final(a)
                   1781: register Node a;
                   1782: {
                   1783:        register int s;
                   1784:        switch (a->op) {
                   1785:        case 608: L608:   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   1786:                dumptree(a, 608);
                   1787:                spill(0x0000ff00, IREG, a);  
                   1788:                a->op = 608;
                   1789:                break;
                   1790:        case 609: L609:   /* call ^y; nop */
                   1791:                dumptree(a, 609);
                   1792:                if (
                   1793:                a->x.ints[0] == 58  /* _^c */
                   1794:                ) {
                   1795:                        a->x.ints[0] = 57;  /* ^c */
                   1796:                        goto L609;   /* call ^y; nop */
                   1797:                }
                   1798:                spill(0xfffffffc, FREG, a);  
                   1799:                a->op = 609;
                   1800:                break;
                   1801:        case 610: L610:   /* call ^y; st ^z,[%sp+64] */
                   1802:                dumptree(a, 610);
                   1803:                if (
                   1804:                a->x.ints[0] == 58  /* _^c */
                   1805:                ) {
                   1806:                        a->x.ints[0] = 57;  /* ^c */
                   1807:                        goto L610;   /* call ^y; st ^z,[%sp+64] */
                   1808:                }
                   1809:                spill(0xfffffffc, FREG, a);  
                   1810:                a->op = 610;
                   1811:                break;
                   1812:        case 611: L611:   /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
                   1813:                dumptree(a, 611);
                   1814:                spill(0x00000001, FREG, a);  
                   1815:                a->op = 611;
                   1816:                break;
                   1817:        case 612: L612:   /* sll ^y,^x,%g1; sra %g1,^x,^z */
                   1818:                dumptree(a, 612);
                   1819:                a->op = 612;
                   1820:                break;
                   1821:        case 613: L613:   /* ^z: */
                   1822:                dumptree(a, 613);
                   1823:                a->op = 613;
                   1824:                break;
                   1825:        case 614: L614:   /* nop */
                   1826:                dumptree(a, 614);
                   1827:                a->op = 614;
                   1828:                break;
                   1829:        case 615: L615:   /* # argd */
                   1830:                dumptree(a, 615);
                   1831:                a->op = 615;
                   1832:                return;
                   1833:        case 616: L616:   /* # movd */
                   1834:                dumptree(a, 616);
                   1835:                a->op = 616;
                   1836:                return;
                   1837:        case 617: L617:   /* # negd */
                   1838:                dumptree(a, 617);
                   1839:                a->op = 617;
                   1840:                return;
                   1841:        case 618: L618:   /* # asgnb */
                   1842:                dumptree(a, 618);
                   1843:                a->op = 618;
                   1844:                return;
                   1845:        case 619: L619:   /* # reg */
                   1846:                dumptree(a, 619);
                   1847:                a->op = 619;
                   1848:                return;
                   1849:        case 620: L620:   /* # ret */
                   1850:                dumptree(a, 620);
                   1851:                a->op = 620;
                   1852:                return;
                   1853:        case 621: L621:   /* # label */
                   1854:                dumptree(a, 621);
                   1855:                a->op = 621;
                   1856:                return;
                   1857:        case 622: L622:   /* ^f ^y,^x,^z */
                   1858:                dumptree(a, 622);
                   1859:                a->op = 622;
                   1860:                break;
                   1861:        case 623: L623:   /* f^f^t ^y,^x,^z */
                   1862:                dumptree(a, 623);
                   1863:                a->op = 623;
                   1864:                break;
                   1865:        case 624: L624:   /* call ^y,2; nop */
                   1866:                dumptree(a, 624);
                   1867:                a->op = 624;
                   1868:                break;
                   1869:        case 625: L625:   /* cmp ^y,^x; b^f ^z; nop */
                   1870:                dumptree(a, 625);
                   1871:                a->op = 625;
                   1872:                break;
                   1873:        case 626: L626:   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   1874:                dumptree(a, 626);
                   1875:                a->op = 626;
                   1876:                break;
                   1877:        case 627: L627:   /* fstod ^y,^z */
                   1878:                dumptree(a, 627);
                   1879:                a->op = 627;
                   1880:                break;
                   1881:        case 628: L628:   /* fdtos ^y,^z */
                   1882:                dumptree(a, 628);
                   1883:                a->op = 628;
                   1884:                break;
                   1885:        case 629: L629:   /* fnegs ^y,^z */
                   1886:                dumptree(a, 629);
                   1887:                a->op = 629;
                   1888:                break;
                   1889:        case 630: L630:   /* fmovd ^y,^z; fnegs ^z,^z */
                   1890:                dumptree(a, 630);
                   1891:                a->op = 630;
                   1892:                break;
                   1893:        case 631: L631:   /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
                   1894:                dumptree(a, 631);
                   1895:                a->op = 631;
                   1896:                break;
                   1897:        case 632: L632:   /* jmp ^y; nop */
                   1898:                dumptree(a, 632);
                   1899:                a->op = 632;
                   1900:                break;
                   1901:        case 633: L633:   /* ba ^y; nop */
                   1902:                dumptree(a, 633);
                   1903:                a->op = 633;
                   1904:                break;
                   1905:        case 634: L634:   /* ld^t [^y],^z */
                   1906:                dumptree(a, 634);
                   1907:                if (
                   1908:                a->x.ints[4] == 8  /* d */
                   1909:                ) {
                   1910:                        a->x.ints[1] = 7;  /* %f^c */
                   1911:                        a->syms[1]=nextreg(a->syms[2]);
                   1912:                        goto L635;   /* ld [^y],^z; ld [^y+4],^x */
                   1913:                }
                   1914:                a->op = 634;
                   1915:                break;
                   1916:        case 635: L635:   /* ld [^y],^z; ld [^y+4],^x */
                   1917:                dumptree(a, 635);
                   1918:                a->op = 635;
                   1919:                break;
                   1920:        case 636: L636:   /* mov ^y,^z */
                   1921:                dumptree(a, 636);
                   1922:                if (
                   1923:                a->x.ints[0] == 1  /* %^n */
                   1924:                && a->x.ints[2] == 2  /* %^c */
                   1925:                && a->kids[0]->syms[RX]->x.name==a->syms[RX]->x.name
                   1926:                ) {
                   1927:                        goto L619;   /* # reg */
                   1928:                }
                   1929:                a->op = 636;
                   1930:                break;
                   1931:        case 637: L637:   /* fmov^t ^y,^z */
                   1932:                dumptree(a, 637);
                   1933:                a->op = 637;
                   1934:                break;
                   1935:        case 638: L638:   /* set ^y,^z */
                   1936:                dumptree(a, 638);
                   1937:                if (
                   1938:                a->x.ints[0] == 58  /* _^c */
                   1939:                ) {
                   1940:                        a->x.ints[0] = 57;  /* ^c */
                   1941:                        goto L638;   /* set ^y,^z */
                   1942:                }
                   1943:                a->op = 638;
                   1944:                break;
                   1945:        case 639: L639:   /* set 0xffff,%g1; and ^y,%g1,^z */
                   1946:                dumptree(a, 639);
                   1947:                a->op = 639;
                   1948:                break;
                   1949:        case 640: L640:   /* set ^z,%g1; st^t ^y,[%fp+%g1] */
                   1950:                dumptree(a, 640);
                   1951:                a->op = 640;
                   1952:                break;
                   1953:        case 641: L641:   /* set ^y,%g1; ld^t [%fp+%g1],^z */
                   1954:                dumptree(a, 641);
                   1955:                a->op = 641;
                   1956:                break;
                   1957:        case 642: L642:   /* st^t ^y,[^z] */
                   1958:                dumptree(a, 642);
                   1959:                switch (a->x.ints[4]) {
                   1960:                case 8:   /* d */
                   1961:                        if (
                   1962:                        a->x.ints[0] == 6  /* %f^n */
                   1963:                        && a->x.ints[2] == 35  /* %sp+4*^c+68 */
                   1964:                        ) {
                   1965:                                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);
                   1966:                                goto L615;   /* # argd */
                   1967:                        }
                   1968:                        a->x.ints[1] = 7;  /* %f^c */
                   1969:                        a->syms[1]=nextreg(a->kids[0]->syms[2]);
                   1970:                        goto L644;   /* st ^y,[^z]; st ^x,[^z+4] */
                   1971:                case 9:   /*  */
                   1972:                        if (
                   1973:                        a->x.ints[0] == 6  /* %f^n */
                   1974:                        && a->x.ints[2] == 35  /* %sp+4*^c+68 */
                   1975:                        && 6>a->syms[2]->u.c.v.i
                   1976:                        ) {
                   1977:                                a->x.ints[1] = 57;  /* ^c */
                   1978:                                a->x.ints[2] = 57;  /* ^c */
                   1979:                                a->x.ints[2] = 57;  /* ^c */
                   1980:                                a->x.ints[0] = 6;  /* %f^n */
                   1981:                                goto L645;   /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
                   1982:                        }
                   1983:                        break;
                   1984:                }
                   1985:                a->op = 642;
                   1986:                break;
                   1987:        case 643: L643:   /* st ^y,[^z] */
                   1988:                dumptree(a, 643);
                   1989:                a->op = 643;
                   1990:                break;
                   1991:        case 644: L644:   /* st ^y,[^z]; st ^x,[^z+4] */
                   1992:                dumptree(a, 644);
                   1993:                a->op = 644;
                   1994:                break;
                   1995:        case 645: L645:   /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
                   1996:                dumptree(a, 645);
                   1997:                a->op = 645;
                   1998:                break;
                   1999:        case 646: L646:   /* set ^y,%g1; add %fp,%g1,^z */
                   2000:                dumptree(a, 646);
                   2001:                a->op = 646;
                   2002:                break;
                   2003:        case 647: L647:   /* call ^f,2; nop */
                   2004:                dumptree(a, 647);
                   2005:                a->op = 647;
                   2006:                break;
                   2007:        }
                   2008: }
                   2009: 
                   2010: static void rewrite(a)
                   2011: register Node a;
                   2012: {
                   2013:        register Node b, c;
                   2014:        register int s;
                   2015:        assert(a);
                   2016:        switch (a->op) {
                   2017:        case 19: L19:   /* CNSTC */
                   2018:                dumptree(a, a->op);
                   2019:                setreg(a, rmap[C]);
                   2020:                a->x.ints[2] = 2;  /* %^c */
                   2021:                a->x.ints[0] = 57;  /* ^c */
                   2022:                goto L638;   /* set ^y,^z */
                   2023:        case 20: L20:   /* CNSTS */
                   2024:                dumptree(a, a->op);
                   2025:                setreg(a, rmap[S]);
                   2026:                a->x.ints[2] = 2;  /* %^c */
                   2027:                a->x.ints[0] = 57;  /* ^c */
                   2028:                goto L638;   /* set ^y,^z */
                   2029:        case 21: L21:   /* CNSTI */
                   2030:                dumptree(a, a->op);
                   2031:                setreg(a, rmap[I]);
                   2032:                a->x.ints[2] = 2;  /* %^c */
                   2033:                a->x.ints[0] = 57;  /* ^c */
                   2034:                goto L638;   /* set ^y,^z */
                   2035:        case 22: L22:   /* CNSTU */
                   2036:                dumptree(a, a->op);
                   2037:                setreg(a, rmap[U]);
                   2038:                a->x.ints[2] = 2;  /* %^c */
                   2039:                a->x.ints[0] = 57;  /* ^c */
                   2040:                goto L638;   /* set ^y,^z */
                   2041:        case 23: L23:   /* CNSTP */
                   2042:                dumptree(a, a->op);
                   2043:                setreg(a, rmap[P]);
                   2044:                a->x.ints[2] = 2;  /* %^c */
                   2045:                a->x.ints[0] = 57;  /* ^c */
                   2046:                goto L638;   /* set ^y,^z */
                   2047:        case 33: L33:   /* ARGF */
                   2048:                dumptree(a, a->op);
                   2049:                rewrite(a->kids[0]);
                   2050:                a->x.ints[2] = 35;  /* %sp+4*^c+68 */
                   2051:                a->x.ints[0] = 6;  /* %f^n */
                   2052:                a->x.ints[4] = 9;  /*  */
                   2053:                goto L642;   /* st^t ^y,[^z] */
                   2054:        case 34: L34:   /* ARGD */
                   2055:                dumptree(a, a->op);
                   2056:                rewrite(a->kids[0]);
                   2057:                a->x.ints[2] = 35;  /* %sp+4*^c+68 */
                   2058:                a->x.ints[0] = 6;  /* %f^n */
                   2059:                a->x.ints[4] = 8;  /* d */
                   2060:                goto L642;   /* st^t ^y,[^z] */
                   2061:        case 37: L37:   /* ARGI */
                   2062:                dumptree(a, a->op);
                   2063:                rewrite(a->kids[0]);
                   2064:                a->x.ints[2] = 35;  /* %sp+4*^c+68 */
                   2065:                a->x.ints[0] = 1;  /* %^n */
                   2066:                a->x.ints[4] = 9;  /*  */
                   2067:                goto L642;   /* st^t ^y,[^z] */
                   2068:        case 39: L39:   /* ARGP */
                   2069:                dumptree(a, a->op);
                   2070:                rewrite(a->kids[0]);
                   2071:                a->x.ints[2] = 35;  /* %sp+4*^c+68 */
                   2072:                a->x.ints[0] = 1;  /* %^n */
                   2073:                a->x.ints[4] = 9;  /*  */
                   2074:                goto L642;   /* st^t ^y,[^z] */
                   2075:        case 49: L49:   /* ASGNF */
                   2076:                dumptree(a, a->op);
                   2077:                rewrite(a->kids[0]);
                   2078:                rewrite(a->kids[1]);
                   2079:                a->kids[2] = a->kids[0];
                   2080:                a->kids[0] = 0;
                   2081:                a->x.ints[2] = 1;  /* %^n */
                   2082:                a->x.ints[0] = 6;  /* %f^n */
                   2083:                a->x.ints[4] = 9;  /*  */
                   2084:                a->kids[0] = a->kids[1];
                   2085:                a->kids[1] = 0;
                   2086:                goto L642;   /* st^t ^y,[^z] */
                   2087:        case 50: L50:   /* ASGND */
                   2088:                dumptree(a, a->op);
                   2089:                rewrite(a->kids[0]);
                   2090:                rewrite(a->kids[1]);
                   2091:                a->kids[2] = a->kids[0];
                   2092:                a->kids[0] = 0;
                   2093:                a->x.ints[2] = 1;  /* %^n */
                   2094:                a->x.ints[0] = 6;  /* %f^n */
                   2095:                a->x.ints[4] = 8;  /* d */
                   2096:                a->kids[0] = a->kids[1];
                   2097:                a->kids[1] = 0;
                   2098:                goto L642;   /* st^t ^y,[^z] */
                   2099:        case 51: L51:   /* ASGNC */
                   2100:                dumptree(a, a->op);
                   2101:                rewrite(a->kids[0]);
                   2102:                rewrite(a->kids[1]);
                   2103:                a->kids[2] = a->kids[0];
                   2104:                a->kids[0] = 0;
                   2105:                a->x.ints[2] = 1;  /* %^n */
                   2106:                a->x.ints[0] = 1;  /* %^n */
                   2107:                a->x.ints[4] = 5;  /* b */
                   2108:                a->kids[0] = a->kids[1];
                   2109:                a->kids[1] = 0;
                   2110:                goto L642;   /* st^t ^y,[^z] */
                   2111:        case 52: L52:   /* ASGNS */
                   2112:                dumptree(a, a->op);
                   2113:                rewrite(a->kids[0]);
                   2114:                rewrite(a->kids[1]);
                   2115:                a->kids[2] = a->kids[0];
                   2116:                a->kids[0] = 0;
                   2117:                a->x.ints[2] = 1;  /* %^n */
                   2118:                a->x.ints[0] = 1;  /* %^n */
                   2119:                a->x.ints[4] = 6;  /* h */
                   2120:                a->kids[0] = a->kids[1];
                   2121:                a->kids[1] = 0;
                   2122:                goto L642;   /* st^t ^y,[^z] */
                   2123:        case 53: L53:   /* ASGNI */
                   2124:                dumptree(a, a->op);
                   2125:                rewrite(a->kids[0]);
                   2126:                rewrite(a->kids[1]);
                   2127:                a->kids[2] = a->kids[0];
                   2128:                a->kids[0] = 0;
                   2129:                a->x.ints[2] = 1;  /* %^n */
                   2130:                a->x.ints[0] = 1;  /* %^n */
                   2131:                a->x.ints[4] = 9;  /*  */
                   2132:                a->kids[0] = a->kids[1];
                   2133:                a->kids[1] = 0;
                   2134:                goto L642;   /* st^t ^y,[^z] */
                   2135:        case 55: L55:   /* ASGNP */
                   2136:                dumptree(a, a->op);
                   2137:                rewrite(a->kids[0]);
                   2138:                rewrite(a->kids[1]);
                   2139:                a->kids[2] = a->kids[0];
                   2140:                a->kids[0] = 0;
                   2141:                a->x.ints[2] = 1;  /* %^n */
                   2142:                a->x.ints[0] = 1;  /* %^n */
                   2143:                a->x.ints[4] = 9;  /*  */
                   2144:                a->kids[0] = a->kids[1];
                   2145:                a->kids[1] = 0;
                   2146:                goto L642;   /* st^t ^y,[^z] */
                   2147:        case 57: L57:   /* ASGNB */
                   2148:                dumptree(a, a->op);
                   2149:                rewrite(a->kids[0]);
                   2150:                rewrite(a->kids[1]);
                   2151:                goto L618;   /* # asgnb */
                   2152:        case 65: L65:   /* INDIRF */
                   2153:                dumptree(a, a->op);
                   2154:                setreg(a, rmap[F]);
                   2155:                rewrite(a->kids[0]);
                   2156:                a->x.ints[2] = 7;  /* %f^c */
                   2157:                a->x.ints[0] = 1;  /* %^n */
                   2158:                a->x.ints[4] = 9;  /*  */
                   2159:                goto L634;   /* ld^t [^y],^z */
                   2160:        case 66: L66:   /* INDIRD */
                   2161:                dumptree(a, a->op);
                   2162:                setreg(a, rmap[D]);
                   2163:                rewrite(a->kids[0]);
                   2164:                a->x.ints[2] = 7;  /* %f^c */
                   2165:                a->x.ints[0] = 1;  /* %^n */
                   2166:                a->x.ints[4] = 8;  /* d */
                   2167:                goto L634;   /* ld^t [^y],^z */
                   2168:        case 67: L67:   /* INDIRC */
                   2169:                dumptree(a, a->op);
                   2170:                setreg(a, rmap[C]);
                   2171:                rewrite(a->kids[0]);
                   2172:                a->x.ints[2] = 2;  /* %^c */
                   2173:                a->x.ints[0] = 1;  /* %^n */
                   2174:                a->x.ints[4] = 1;  /* sb */
                   2175:                goto L634;   /* ld^t [^y],^z */
                   2176:        case 68: L68:   /* INDIRS */
                   2177:                dumptree(a, a->op);
                   2178:                setreg(a, rmap[S]);
                   2179:                rewrite(a->kids[0]);
                   2180:                a->x.ints[2] = 2;  /* %^c */
                   2181:                a->x.ints[0] = 1;  /* %^n */
                   2182:                a->x.ints[4] = 2;  /* sh */
                   2183:                goto L634;   /* ld^t [^y],^z */
                   2184:        case 69: L69:   /* INDIRI */
                   2185:                dumptree(a, a->op);
                   2186:                setreg(a, rmap[I]);
                   2187:                rewrite(a->kids[0]);
                   2188:                a->x.ints[2] = 2;  /* %^c */
                   2189:                a->x.ints[0] = 1;  /* %^n */
                   2190:                a->x.ints[4] = 9;  /*  */
                   2191:                goto L634;   /* ld^t [^y],^z */
                   2192:        case 71: L71:   /* INDIRP */
                   2193:                dumptree(a, a->op);
                   2194:                setreg(a, rmap[P]);
                   2195:                rewrite(a->kids[0]);
                   2196:                a->x.ints[2] = 2;  /* %^c */
                   2197:                a->x.ints[0] = 1;  /* %^n */
                   2198:                a->x.ints[4] = 9;  /*  */
                   2199:                goto L634;   /* ld^t [^y],^z */
                   2200:        case 73: L73:   /* INDIRB */
                   2201:                dumptree(a, a->op);
                   2202:                setreg(a, rmap[P]);
                   2203:                rewrite(a->kids[0]);
                   2204:                a->x.ints[2] = 2;  /* %^c */
                   2205:                a->x.ints[0] = 1;  /* %^n */
                   2206:                goto L636;   /* mov ^y,^z */
                   2207:        case 85: L85:   /* CVCI */
                   2208:                dumptree(a, a->op);
                   2209:                setreg(a, rmap[I]);
                   2210:                rewrite(a->kids[0]);
                   2211:                a->x.ints[2] = 2;  /* %^c */
                   2212:                a->syms[1] = &sym[5];  /* 24 */
                   2213:                a->x.ints[1] = 57;  /* ^c */
                   2214:                a->syms[1] = &sym[5];  /* 24 */
                   2215:                a->x.ints[1] = 57;  /* ^c */
                   2216:                a->x.ints[0] = 1;  /* %^n */
                   2217:                goto L612;   /* sll ^y,^x,%g1; sra %g1,^x,^z */
                   2218:        case 86: L86:   /* CVCU */
                   2219:                dumptree(a, a->op);
                   2220:                setreg(a, rmap[U]);
                   2221:                rewrite(a->kids[0]);
                   2222:                a->x.ints[2] = 2;  /* %^c */
                   2223:                a->syms[1] = &sym[2];  /* 0xff */
                   2224:                a->x.ints[1] = 57;  /* ^c */
                   2225:                a->x.ints[0] = 1;  /* %^n */
                   2226:                a->x.ints[3] = 2;  /* and */
                   2227:                goto L622;   /* ^f ^y,^x,^z */
                   2228:        case 97: L97:   /* CVDF */
                   2229:                dumptree(a, a->op);
                   2230:                setreg(a, rmap[F]);
                   2231:                rewrite(a->kids[0]);
                   2232:                a->x.ints[2] = 7;  /* %f^c */
                   2233:                a->x.ints[0] = 6;  /* %f^n */
                   2234:                goto L628;   /* fdtos ^y,^z */
                   2235:        case 101: L101:   /* CVDI */
                   2236:                dumptree(a, a->op);
                   2237:                setreg(a, rmap[I]);
                   2238:                rewrite(a->kids[0]);
                   2239:                a->x.ints[2] = 2;  /* %^c */
                   2240:                a->x.ints[0] = 6;  /* %f^n */
                   2241:                goto L611;   /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
                   2242:        case 114: L114:   /* CVFD */
                   2243:                dumptree(a, a->op);
                   2244:                setreg(a, rmap[D]);
                   2245:                rewrite(a->kids[0]);
                   2246:                a->x.ints[2] = 7;  /* %f^c */
                   2247:                a->x.ints[0] = 6;  /* %f^n */
                   2248:                goto L627;   /* fstod ^y,^z */
                   2249:        case 130: L130:   /* CVID */
                   2250:                dumptree(a, a->op);
                   2251:                setreg(a, rmap[D]);
                   2252:                rewrite(a->kids[0]);
                   2253:                a->x.ints[2] = 7;  /* %f^c */
                   2254:                a->x.ints[0] = 1;  /* %^n */
                   2255:                goto L631;   /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
                   2256:        case 131: L131:   /* CVIC */
                   2257:                dumptree(a, a->op);
                   2258:                setreg(a, rmap[C]);
                   2259:                rewrite(a->kids[0]);
                   2260:                a->x.ints[2] = 2;  /* %^c */
                   2261:                a->x.ints[0] = 1;  /* %^n */
                   2262:                goto L636;   /* mov ^y,^z */
                   2263:        case 132: L132:   /* CVIS */
                   2264:                dumptree(a, a->op);
                   2265:                setreg(a, rmap[S]);
                   2266:                rewrite(a->kids[0]);
                   2267:                a->x.ints[2] = 2;  /* %^c */
                   2268:                a->x.ints[0] = 1;  /* %^n */
                   2269:                goto L636;   /* mov ^y,^z */
                   2270:        case 134: L134:   /* CVIU */
                   2271:                dumptree(a, a->op);
                   2272:                setreg(a, rmap[U]);
                   2273:                rewrite(a->kids[0]);
                   2274:                a->x.ints[2] = 2;  /* %^c */
                   2275:                a->x.ints[0] = 1;  /* %^n */
                   2276:                goto L636;   /* mov ^y,^z */
                   2277:        case 150: L150:   /* CVPU */
                   2278:                dumptree(a, a->op);
                   2279:                setreg(a, rmap[U]);
                   2280:                rewrite(a->kids[0]);
                   2281:                a->x.ints[2] = 2;  /* %^c */
                   2282:                a->x.ints[0] = 1;  /* %^n */
                   2283:                goto L636;   /* mov ^y,^z */
                   2284:        case 165: L165:   /* CVSI */
                   2285:                dumptree(a, a->op);
                   2286:                setreg(a, rmap[I]);
                   2287:                rewrite(a->kids[0]);
                   2288:                a->x.ints[2] = 2;  /* %^c */
                   2289:                a->syms[1] = &sym[4];  /* 16 */
                   2290:                a->x.ints[1] = 57;  /* ^c */
                   2291:                a->syms[1] = &sym[4];  /* 16 */
                   2292:                a->x.ints[1] = 57;  /* ^c */
                   2293:                a->x.ints[0] = 1;  /* %^n */
                   2294:                goto L612;   /* sll ^y,^x,%g1; sra %g1,^x,^z */
                   2295:        case 166: L166:   /* CVSU */
                   2296:                dumptree(a, a->op);
                   2297:                setreg(a, rmap[U]);
                   2298:                rewrite(a->kids[0]);
                   2299:                a->x.ints[2] = 2;  /* %^c */
                   2300:                a->x.ints[0] = 1;  /* %^n */
                   2301:                goto L639;   /* set 0xffff,%g1; and ^y,%g1,^z */
                   2302:        case 179: L179:   /* CVUC */
                   2303:                dumptree(a, a->op);
                   2304:                setreg(a, rmap[C]);
                   2305:                rewrite(a->kids[0]);
                   2306:                a->x.ints[2] = 2;  /* %^c */
                   2307:                a->x.ints[0] = 1;  /* %^n */
                   2308:                goto L636;   /* mov ^y,^z */
                   2309:        case 180: L180:   /* CVUS */
                   2310:                dumptree(a, a->op);
                   2311:                setreg(a, rmap[S]);
                   2312:                rewrite(a->kids[0]);
                   2313:                a->x.ints[2] = 2;  /* %^c */
                   2314:                a->x.ints[0] = 1;  /* %^n */
                   2315:                goto L636;   /* mov ^y,^z */
                   2316:        case 181: L181:   /* CVUI */
                   2317:                dumptree(a, a->op);
                   2318:                setreg(a, rmap[I]);
                   2319:                rewrite(a->kids[0]);
                   2320:                a->x.ints[2] = 2;  /* %^c */
                   2321:                a->x.ints[0] = 1;  /* %^n */
                   2322:                goto L636;   /* mov ^y,^z */
                   2323:        case 183: L183:   /* CVUP */
                   2324:                dumptree(a, a->op);
                   2325:                setreg(a, rmap[P]);
                   2326:                rewrite(a->kids[0]);
                   2327:                a->x.ints[2] = 2;  /* %^c */
                   2328:                a->x.ints[0] = 1;  /* %^n */
                   2329:                goto L636;   /* mov ^y,^z */
                   2330:        case 193: L193:   /* NEGF */
                   2331:                dumptree(a, a->op);
                   2332:                setreg(a, rmap[F]);
                   2333:                rewrite(a->kids[0]);
                   2334:                a->x.ints[2] = 7;  /* %f^c */
                   2335:                a->x.ints[0] = 6;  /* %f^n */
                   2336:                goto L629;   /* fnegs ^y,^z */
                   2337:        case 194: L194:   /* NEGD */
                   2338:                dumptree(a, a->op);
                   2339:                setreg(a, rmap[D]);
                   2340:                rewrite(a->kids[0]);
                   2341:                goto L617;   /* # negd */
                   2342:        case 197: L197:   /* NEGI */
                   2343:                dumptree(a, a->op);
                   2344:                setreg(a, rmap[I]);
                   2345:                rewrite(a->kids[0]);
                   2346:                a->x.ints[2] = 2;  /* %^c */
                   2347:                a->kids[1] = a->kids[0];
                   2348:                a->kids[0] = 0;
                   2349:                a->x.ints[1] = 1;  /* %^n */
                   2350:                a->x.ints[0] = 5;  /* %g0 */
                   2351:                a->x.ints[3] = 9;  /* sub */
                   2352:                goto L622;   /* ^f ^y,^x,^z */
                   2353:        case 209: L209:   /* CALLF */
                   2354:                dumptree(a, a->op);
                   2355:                setreg(a, rmap[F]);
                   2356:                rewrite(a->kids[0]);
                   2357:                a->x.ints[0] = 1;  /* %^n */
                   2358:                setreg(a,f0);
                   2359:                goto L609;   /* call ^y; nop */
                   2360:        case 210: L210:   /* CALLD */
                   2361:                dumptree(a, a->op);
                   2362:                setreg(a, rmap[D]);
                   2363:                rewrite(a->kids[0]);
                   2364:                a->x.ints[0] = 1;  /* %^n */
                   2365:                setreg(a,d0);
                   2366:                goto L609;   /* call ^y; nop */
                   2367:        case 213: L213:   /* CALLI */
                   2368:                dumptree(a, a->op);
                   2369:                setreg(a, rmap[I]);
                   2370:                rewrite(a->kids[0]);
                   2371:                a->x.ints[0] = 1;  /* %^n */
                   2372:                setreg(a,oreg[0]);
                   2373:                goto L609;   /* call ^y; nop */
                   2374:        case 216: L216:   /* CALLV */
                   2375:                dumptree(a, a->op);
                   2376:                rewrite(a->kids[0]);
                   2377:                a->x.ints[0] = 1;  /* %^n */
                   2378:                setreg(a,oreg[0]);
                   2379:                goto L609;   /* call ^y; nop */
                   2380:        case 217: L217:   /* CALLB */
                   2381:                dumptree(a, a->op);
                   2382:                rewrite(a->kids[0]);
                   2383:                rewrite(a->kids[1]);
                   2384:                a->kids[2] = a->kids[1];
                   2385:                a->kids[1] = 0;
                   2386:                a->x.ints[2] = 1;  /* %^n */
                   2387:                a->x.ints[0] = 1;  /* %^n */
                   2388:                setreg(a,oreg[0]);
                   2389:                goto L610;   /* call ^y; st ^z,[%sp+64] */
                   2390:        case 225: L225:   /* LOADF */
                   2391:                dumptree(a, a->op);
                   2392:                rewrite(a->kids[0]);
                   2393:                a->x.ints[2] = 7;  /* %f^c */
                   2394:                a->x.ints[0] = 6;  /* %f^n */
                   2395:                a->x.ints[4] = 7;  /* s */
                   2396:                goto L637;   /* fmov^t ^y,^z */
                   2397:        case 226: L226:   /* LOADD */
                   2398:                dumptree(a, a->op);
                   2399:                rewrite(a->kids[0]);
                   2400:                goto L616;   /* # movd */
                   2401:        case 227: L227:   /* LOADC */
                   2402:        case 228: L228:   /* LOADS */
                   2403:        case 229: L229:   /* LOADI */
                   2404:        case 230: L230:   /* LOADU */
                   2405:        case 231: L231:   /* LOADP */
                   2406:                dumptree(a, a->op);
                   2407:                rewrite(a->kids[0]);
                   2408:                a->x.ints[2] = 2;  /* %^c */
                   2409:                a->x.ints[0] = 1;  /* %^n */
                   2410:                goto L636;   /* mov ^y,^z */
                   2411:        case 233: L233:   /* LOADB */
                   2412:                dumptree(a, a->op);
                   2413:                rewrite(a->kids[0]);
                   2414:                a->x.ints[2] = 2;  /* %^c */
                   2415:                a->x.ints[0] = 1;  /* %^n */
                   2416:                goto L636;   /* mov ^y,^z */
                   2417:        case 241: L241:   /* RETF */
                   2418:                dumptree(a, a->op);
                   2419:                rewrite(a->kids[0]);
                   2420:                rtarget(a,0,f0);
                   2421:                goto L620;   /* # ret */
                   2422:        case 242: L242:   /* RETD */
                   2423:                dumptree(a, a->op);
                   2424:                rewrite(a->kids[0]);
                   2425:                rtarget(a,0,d0);
                   2426:                goto L620;   /* # ret */
                   2427:        case 245: L245:   /* RETI */
                   2428:                dumptree(a, a->op);
                   2429:                rewrite(a->kids[0]);
                   2430:                rtarget(a,0,i0);
                   2431:                goto L620;   /* # ret */
                   2432:        case 248: L248:   /* RETV */
                   2433:                dumptree(a, a->op);
                   2434:                goto L620;   /* # ret */
                   2435:        case 263: L263:   /* ADDRGP */
                   2436:                dumptree(a, a->op);
                   2437:                setreg(a, rmap[P]);
                   2438:                a->x.ints[2] = 2;  /* %^c */
                   2439:                a->x.ints[0] = 58;  /* _^c */
                   2440:                goto L638;   /* set ^y,^z */
                   2441:        case 279: L279:   /* ADDRFP */
                   2442:                dumptree(a, a->op);
                   2443:                setreg(a, rmap[P]);
                   2444:                a->x.ints[2] = 2;  /* %^c */
                   2445:                a->x.ints[0] = 57;  /* ^c */
                   2446:                goto L646;   /* set ^y,%g1; add %fp,%g1,^z */
                   2447:        case 295: L295:   /* ADDRLP */
                   2448:                dumptree(a, a->op);
                   2449:                setreg(a, rmap[P]);
                   2450:                a->x.ints[2] = 2;  /* %^c */
                   2451:                a->x.ints[0] = 57;  /* ^c */
                   2452:                goto L646;   /* set ^y,%g1; add %fp,%g1,^z */
                   2453:        case 305: L305:   /* ADDF */
                   2454:                dumptree(a, a->op);
                   2455:                setreg(a, rmap[F]);
                   2456:                rewrite(a->kids[0]);
                   2457:                rewrite(a->kids[1]);
                   2458:                a->x.ints[2] = 7;  /* %f^c */
                   2459:                a->x.ints[1] = 6;  /* %f^n */
                   2460:                a->x.ints[0] = 6;  /* %f^n */
                   2461:                a->x.ints[4] = 7;  /* s */
                   2462:                a->x.ints[3] = 1;  /* add */
                   2463:                goto L623;   /* f^f^t ^y,^x,^z */
                   2464:        case 306: L306:   /* ADDD */
                   2465:                dumptree(a, a->op);
                   2466:                setreg(a, rmap[D]);
                   2467:                rewrite(a->kids[0]);
                   2468:                rewrite(a->kids[1]);
                   2469:                a->x.ints[2] = 7;  /* %f^c */
                   2470:                a->x.ints[1] = 6;  /* %f^n */
                   2471:                a->x.ints[0] = 6;  /* %f^n */
                   2472:                a->x.ints[4] = 8;  /* d */
                   2473:                a->x.ints[3] = 1;  /* add */
                   2474:                goto L623;   /* f^f^t ^y,^x,^z */
                   2475:        case 309: L309:   /* ADDI */
                   2476:                dumptree(a, a->op);
                   2477:                setreg(a, rmap[I]);
                   2478:                rewrite(a->kids[0]);
                   2479:                rewrite(a->kids[1]);
                   2480:                a->x.ints[2] = 2;  /* %^c */
                   2481:                a->x.ints[1] = 1;  /* %^n */
                   2482:                a->x.ints[0] = 1;  /* %^n */
                   2483:                a->x.ints[3] = 1;  /* add */
                   2484:                goto L622;   /* ^f ^y,^x,^z */
                   2485:        case 310: L310:   /* ADDU */
                   2486:                dumptree(a, a->op);
                   2487:                setreg(a, rmap[U]);
                   2488:                rewrite(a->kids[0]);
                   2489:                rewrite(a->kids[1]);
                   2490:                a->x.ints[2] = 2;  /* %^c */
                   2491:                a->x.ints[1] = 1;  /* %^n */
                   2492:                a->x.ints[0] = 1;  /* %^n */
                   2493:                a->x.ints[3] = 1;  /* add */
                   2494:                goto L622;   /* ^f ^y,^x,^z */
                   2495:        case 311: L311:   /* ADDP */
                   2496:                dumptree(a, a->op);
                   2497:                setreg(a, rmap[P]);
                   2498:                rewrite(a->kids[0]);
                   2499:                rewrite(a->kids[1]);
                   2500:                a->x.ints[2] = 2;  /* %^c */
                   2501:                a->x.ints[1] = 1;  /* %^n */
                   2502:                a->x.ints[0] = 1;  /* %^n */
                   2503:                a->x.ints[3] = 1;  /* add */
                   2504:                goto L622;   /* ^f ^y,^x,^z */
                   2505:        case 321: L321:   /* SUBF */
                   2506:                dumptree(a, a->op);
                   2507:                setreg(a, rmap[F]);
                   2508:                rewrite(a->kids[0]);
                   2509:                rewrite(a->kids[1]);
                   2510:                a->x.ints[2] = 7;  /* %f^c */
                   2511:                a->x.ints[1] = 6;  /* %f^n */
                   2512:                a->x.ints[0] = 6;  /* %f^n */
                   2513:                a->x.ints[4] = 7;  /* s */
                   2514:                a->x.ints[3] = 9;  /* sub */
                   2515:                goto L623;   /* f^f^t ^y,^x,^z */
                   2516:        case 322: L322:   /* SUBD */
                   2517:                dumptree(a, a->op);
                   2518:                setreg(a, rmap[D]);
                   2519:                rewrite(a->kids[0]);
                   2520:                rewrite(a->kids[1]);
                   2521:                a->x.ints[2] = 7;  /* %f^c */
                   2522:                a->x.ints[1] = 6;  /* %f^n */
                   2523:                a->x.ints[0] = 6;  /* %f^n */
                   2524:                a->x.ints[4] = 8;  /* d */
                   2525:                a->x.ints[3] = 9;  /* sub */
                   2526:                goto L623;   /* f^f^t ^y,^x,^z */
                   2527:        case 325: L325:   /* SUBI */
                   2528:                dumptree(a, a->op);
                   2529:                setreg(a, rmap[I]);
                   2530:                rewrite(a->kids[0]);
                   2531:                rewrite(a->kids[1]);
                   2532:                a->x.ints[2] = 2;  /* %^c */
                   2533:                a->x.ints[1] = 1;  /* %^n */
                   2534:                a->x.ints[0] = 1;  /* %^n */
                   2535:                a->x.ints[3] = 9;  /* sub */
                   2536:                goto L622;   /* ^f ^y,^x,^z */
                   2537:        case 326: L326:   /* SUBU */
                   2538:                dumptree(a, a->op);
                   2539:                setreg(a, rmap[U]);
                   2540:                rewrite(a->kids[0]);
                   2541:                rewrite(a->kids[1]);
                   2542:                a->x.ints[2] = 2;  /* %^c */
                   2543:                a->x.ints[1] = 1;  /* %^n */
                   2544:                a->x.ints[0] = 1;  /* %^n */
                   2545:                a->x.ints[3] = 9;  /* sub */
                   2546:                goto L622;   /* ^f ^y,^x,^z */
                   2547:        case 327: L327:   /* SUBP */
                   2548:                dumptree(a, a->op);
                   2549:                setreg(a, rmap[P]);
                   2550:                rewrite(a->kids[0]);
                   2551:                rewrite(a->kids[1]);
                   2552:                a->x.ints[2] = 2;  /* %^c */
                   2553:                a->x.ints[1] = 1;  /* %^n */
                   2554:                a->x.ints[0] = 1;  /* %^n */
                   2555:                a->x.ints[3] = 9;  /* sub */
                   2556:                goto L622;   /* ^f ^y,^x,^z */
                   2557:        case 341: L341:   /* LSHI */
                   2558:                dumptree(a, a->op);
                   2559:                setreg(a, rmap[I]);
                   2560:                rewrite(a->kids[0]);
                   2561:                rewrite(a->kids[1]);
                   2562:                a->x.ints[2] = 2;  /* %^c */
                   2563:                a->x.ints[1] = 1;  /* %^n */
                   2564:                a->x.ints[0] = 1;  /* %^n */
                   2565:                a->x.ints[3] = 6;  /* sll */
                   2566:                goto L622;   /* ^f ^y,^x,^z */
                   2567:        case 342: L342:   /* LSHU */
                   2568:                dumptree(a, a->op);
                   2569:                setreg(a, rmap[U]);
                   2570:                rewrite(a->kids[0]);
                   2571:                rewrite(a->kids[1]);
                   2572:                a->x.ints[2] = 2;  /* %^c */
                   2573:                a->x.ints[1] = 1;  /* %^n */
                   2574:                a->x.ints[0] = 1;  /* %^n */
                   2575:                a->x.ints[3] = 6;  /* sll */
                   2576:                goto L622;   /* ^f ^y,^x,^z */
                   2577:        case 357: L357:   /* MODI */
                   2578:                dumptree(a, a->op);
                   2579:                setreg(a, rmap[I]);
                   2580:                rewrite(a->kids[0]);
                   2581:                rewrite(a->kids[1]);
                   2582:                a->x.ints[2] = 2;  /* %^c */
                   2583:                a->x.ints[0] = 1;  /* %^n */
                   2584:                a->x.ints[3] = 17;  /* .rem */
                   2585:                a->x.ints[1] = 1;  /* %^n */
                   2586:                ncalls++;
                   2587:                goto L608;   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   2588:        case 358: L358:   /* MODU */
                   2589:                dumptree(a, a->op);
                   2590:                setreg(a, rmap[U]);
                   2591:                rewrite(a->kids[0]);
                   2592:                rewrite(a->kids[1]);
                   2593:                a->x.ints[2] = 2;  /* %^c */
                   2594:                a->x.ints[0] = 1;  /* %^n */
                   2595:                a->x.ints[3] = 14;  /* .urem */
                   2596:                a->x.ints[1] = 1;  /* %^n */
                   2597:                ncalls++;
                   2598:                goto L608;   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   2599:        case 373: L373:   /* RSHI */
                   2600:                dumptree(a, a->op);
                   2601:                setreg(a, rmap[I]);
                   2602:                rewrite(a->kids[0]);
                   2603:                rewrite(a->kids[1]);
                   2604:                a->x.ints[2] = 2;  /* %^c */
                   2605:                a->x.ints[1] = 1;  /* %^n */
                   2606:                a->x.ints[0] = 1;  /* %^n */
                   2607:                a->x.ints[3] = 7;  /* sra */
                   2608:                goto L622;   /* ^f ^y,^x,^z */
                   2609:        case 374: L374:   /* RSHU */
                   2610:                dumptree(a, a->op);
                   2611:                setreg(a, rmap[U]);
                   2612:                rewrite(a->kids[0]);
                   2613:                rewrite(a->kids[1]);
                   2614:                a->x.ints[2] = 2;  /* %^c */
                   2615:                a->x.ints[1] = 1;  /* %^n */
                   2616:                a->x.ints[0] = 1;  /* %^n */
                   2617:                a->x.ints[3] = 8;  /* srl */
                   2618:                goto L622;   /* ^f ^y,^x,^z */
                   2619:        case 390: L390:   /* BANDU */
                   2620:                dumptree(a, a->op);
                   2621:                setreg(a, rmap[U]);
                   2622:                rewrite(a->kids[0]);
                   2623:                rewrite(a->kids[1]);
                   2624:                a->x.ints[2] = 2;  /* %^c */
                   2625:                a->x.ints[1] = 1;  /* %^n */
                   2626:                a->x.ints[0] = 1;  /* %^n */
                   2627:                a->x.ints[3] = 2;  /* and */
                   2628:                goto L622;   /* ^f ^y,^x,^z */
                   2629:        case 406: L406:   /* BCOMU */
                   2630:                dumptree(a, a->op);
                   2631:                setreg(a, rmap[U]);
                   2632:                rewrite(a->kids[0]);
                   2633:                a->x.ints[2] = 2;  /* %^c */
                   2634:                a->x.ints[1] = 5;  /* %g0 */
                   2635:                a->x.ints[0] = 1;  /* %^n */
                   2636:                a->x.ints[3] = 11;  /* xnor */
                   2637:                goto L622;   /* ^f ^y,^x,^z */
                   2638:        case 422: L422:   /* BORU */
                   2639:                dumptree(a, a->op);
                   2640:                setreg(a, rmap[U]);
                   2641:                rewrite(a->kids[0]);
                   2642:                rewrite(a->kids[1]);
                   2643:                a->x.ints[2] = 2;  /* %^c */
                   2644:                a->x.ints[1] = 1;  /* %^n */
                   2645:                a->x.ints[0] = 1;  /* %^n */
                   2646:                a->x.ints[3] = 5;  /* or */
                   2647:                goto L622;   /* ^f ^y,^x,^z */
                   2648:        case 438: L438:   /* BXORU */
                   2649:                dumptree(a, a->op);
                   2650:                setreg(a, rmap[U]);
                   2651:                rewrite(a->kids[0]);
                   2652:                rewrite(a->kids[1]);
                   2653:                a->x.ints[2] = 2;  /* %^c */
                   2654:                a->x.ints[1] = 1;  /* %^n */
                   2655:                a->x.ints[0] = 1;  /* %^n */
                   2656:                a->x.ints[3] = 10;  /* xor */
                   2657:                goto L622;   /* ^f ^y,^x,^z */
                   2658:        case 449: L449:   /* DIVF */
                   2659:                dumptree(a, a->op);
                   2660:                setreg(a, rmap[F]);
                   2661:                rewrite(a->kids[0]);
                   2662:                rewrite(a->kids[1]);
                   2663:                a->x.ints[2] = 7;  /* %f^c */
                   2664:                a->x.ints[1] = 6;  /* %f^n */
                   2665:                a->x.ints[0] = 6;  /* %f^n */
                   2666:                a->x.ints[4] = 7;  /* s */
                   2667:                a->x.ints[3] = 3;  /* div */
                   2668:                goto L623;   /* f^f^t ^y,^x,^z */
                   2669:        case 450: L450:   /* DIVD */
                   2670:                dumptree(a, a->op);
                   2671:                setreg(a, rmap[D]);
                   2672:                rewrite(a->kids[0]);
                   2673:                rewrite(a->kids[1]);
                   2674:                a->x.ints[2] = 7;  /* %f^c */
                   2675:                a->x.ints[1] = 6;  /* %f^n */
                   2676:                a->x.ints[0] = 6;  /* %f^n */
                   2677:                a->x.ints[4] = 8;  /* d */
                   2678:                a->x.ints[3] = 3;  /* div */
                   2679:                goto L623;   /* f^f^t ^y,^x,^z */
                   2680:        case 453: L453:   /* DIVI */
                   2681:                dumptree(a, a->op);
                   2682:                setreg(a, rmap[I]);
                   2683:                rewrite(a->kids[0]);
                   2684:                rewrite(a->kids[1]);
                   2685:                a->x.ints[2] = 2;  /* %^c */
                   2686:                a->x.ints[0] = 1;  /* %^n */
                   2687:                a->x.ints[3] = 15;  /* .div */
                   2688:                a->x.ints[1] = 1;  /* %^n */
                   2689:                ncalls++;
                   2690:                goto L608;   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   2691:        case 454: L454:   /* DIVU */
                   2692:                dumptree(a, a->op);
                   2693:                setreg(a, rmap[U]);
                   2694:                rewrite(a->kids[0]);
                   2695:                rewrite(a->kids[1]);
                   2696:                a->x.ints[2] = 2;  /* %^c */
                   2697:                a->x.ints[0] = 1;  /* %^n */
                   2698:                a->x.ints[3] = 12;  /* .udiv */
                   2699:                a->x.ints[1] = 1;  /* %^n */
                   2700:                ncalls++;
                   2701:                goto L608;   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   2702:        case 465: L465:   /* MULF */
                   2703:                dumptree(a, a->op);
                   2704:                setreg(a, rmap[F]);
                   2705:                rewrite(a->kids[0]);
                   2706:                rewrite(a->kids[1]);
                   2707:                a->x.ints[2] = 7;  /* %f^c */
                   2708:                a->x.ints[1] = 6;  /* %f^n */
                   2709:                a->x.ints[0] = 6;  /* %f^n */
                   2710:                a->x.ints[4] = 7;  /* s */
                   2711:                a->x.ints[3] = 4;  /* mul */
                   2712:                goto L623;   /* f^f^t ^y,^x,^z */
                   2713:        case 466: L466:   /* MULD */
                   2714:                dumptree(a, a->op);
                   2715:                setreg(a, rmap[D]);
                   2716:                rewrite(a->kids[0]);
                   2717:                rewrite(a->kids[1]);
                   2718:                a->x.ints[2] = 7;  /* %f^c */
                   2719:                a->x.ints[1] = 6;  /* %f^n */
                   2720:                a->x.ints[0] = 6;  /* %f^n */
                   2721:                a->x.ints[4] = 8;  /* d */
                   2722:                a->x.ints[3] = 4;  /* mul */
                   2723:                goto L623;   /* f^f^t ^y,^x,^z */
                   2724:        case 469: L469:   /* MULI */
                   2725:                dumptree(a, a->op);
                   2726:                setreg(a, rmap[I]);
                   2727:                rewrite(a->kids[0]);
                   2728:                rewrite(a->kids[1]);
                   2729:                a->x.ints[2] = 2;  /* %^c */
                   2730:                a->x.ints[0] = 1;  /* %^n */
                   2731:                a->x.ints[3] = 16;  /* .mul */
                   2732:                a->x.ints[1] = 1;  /* %^n */
                   2733:                ncalls++;
                   2734:                goto L608;   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   2735:        case 470: L470:   /* MULU */
                   2736:                dumptree(a, a->op);
                   2737:                setreg(a, rmap[U]);
                   2738:                rewrite(a->kids[0]);
                   2739:                rewrite(a->kids[1]);
                   2740:                a->x.ints[2] = 2;  /* %^c */
                   2741:                a->x.ints[0] = 1;  /* %^n */
                   2742:                a->x.ints[3] = 13;  /* .umul */
                   2743:                a->x.ints[1] = 1;  /* %^n */
                   2744:                ncalls++;
                   2745:                goto L608;   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   2746:        case 481: L481:   /* EQF */
                   2747:                dumptree(a, a->op);
                   2748:                rewrite(a->kids[0]);
                   2749:                rewrite(a->kids[1]);
                   2750:                a->syms[2] = a->syms[0];
                   2751:                a->x.ints[2] = 57;  /* ^c */
                   2752:                a->x.ints[3] = 32;  /* ue */
                   2753:                a->x.ints[1] = 6;  /* %f^n */
                   2754:                a->x.ints[0] = 6;  /* %f^n */
                   2755:                a->x.ints[4] = 7;  /* s */
                   2756:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2757:        case 482: L482:   /* EQD */
                   2758:                dumptree(a, a->op);
                   2759:                rewrite(a->kids[0]);
                   2760:                rewrite(a->kids[1]);
                   2761:                a->syms[2] = a->syms[0];
                   2762:                a->x.ints[2] = 57;  /* ^c */
                   2763:                a->x.ints[3] = 32;  /* ue */
                   2764:                a->x.ints[1] = 6;  /* %f^n */
                   2765:                a->x.ints[0] = 6;  /* %f^n */
                   2766:                a->x.ints[4] = 8;  /* d */
                   2767:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2768:        case 485: L485:   /* EQI */
                   2769:                dumptree(a, a->op);
                   2770:                rewrite(a->kids[0]);
                   2771:                rewrite(a->kids[1]);
                   2772:                a->syms[2] = a->syms[0];
                   2773:                a->x.ints[2] = 57;  /* ^c */
                   2774:                a->x.ints[3] = 18;  /* e */
                   2775:                a->x.ints[1] = 1;  /* %^n */
                   2776:                a->x.ints[0] = 1;  /* %^n */
                   2777:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2778:        case 497: L497:   /* GEF */
                   2779:                dumptree(a, a->op);
                   2780:                rewrite(a->kids[0]);
                   2781:                rewrite(a->kids[1]);
                   2782:                a->syms[2] = a->syms[0];
                   2783:                a->x.ints[2] = 57;  /* ^c */
                   2784:                a->x.ints[3] = 29;  /* uge */
                   2785:                a->x.ints[1] = 6;  /* %f^n */
                   2786:                a->x.ints[0] = 6;  /* %f^n */
                   2787:                a->x.ints[4] = 7;  /* s */
                   2788:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2789:        case 498: L498:   /* GED */
                   2790:                dumptree(a, a->op);
                   2791:                rewrite(a->kids[0]);
                   2792:                rewrite(a->kids[1]);
                   2793:                a->syms[2] = a->syms[0];
                   2794:                a->x.ints[2] = 57;  /* ^c */
                   2795:                a->x.ints[3] = 29;  /* uge */
                   2796:                a->x.ints[1] = 6;  /* %f^n */
                   2797:                a->x.ints[0] = 6;  /* %f^n */
                   2798:                a->x.ints[4] = 8;  /* d */
                   2799:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2800:        case 501: L501:   /* GEI */
                   2801:                dumptree(a, a->op);
                   2802:                rewrite(a->kids[0]);
                   2803:                rewrite(a->kids[1]);
                   2804:                a->syms[2] = a->syms[0];
                   2805:                a->x.ints[2] = 57;  /* ^c */
                   2806:                a->x.ints[3] = 23;  /* ge */
                   2807:                a->x.ints[1] = 1;  /* %^n */
                   2808:                a->x.ints[0] = 1;  /* %^n */
                   2809:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2810:        case 502: L502:   /* GEU */
                   2811:                dumptree(a, a->op);
                   2812:                rewrite(a->kids[0]);
                   2813:                rewrite(a->kids[1]);
                   2814:                a->syms[2] = a->syms[0];
                   2815:                a->x.ints[2] = 57;  /* ^c */
                   2816:                a->x.ints[3] = 22;  /* geu */
                   2817:                a->x.ints[1] = 1;  /* %^n */
                   2818:                a->x.ints[0] = 1;  /* %^n */
                   2819:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2820:        case 513: L513:   /* GTF */
                   2821:                dumptree(a, a->op);
                   2822:                rewrite(a->kids[0]);
                   2823:                rewrite(a->kids[1]);
                   2824:                a->syms[2] = a->syms[0];
                   2825:                a->x.ints[2] = 57;  /* ^c */
                   2826:                a->x.ints[3] = 28;  /* ug */
                   2827:                a->x.ints[1] = 6;  /* %f^n */
                   2828:                a->x.ints[0] = 6;  /* %f^n */
                   2829:                a->x.ints[4] = 7;  /* s */
                   2830:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2831:        case 514: L514:   /* GTD */
                   2832:                dumptree(a, a->op);
                   2833:                rewrite(a->kids[0]);
                   2834:                rewrite(a->kids[1]);
                   2835:                a->syms[2] = a->syms[0];
                   2836:                a->x.ints[2] = 57;  /* ^c */
                   2837:                a->x.ints[3] = 28;  /* ug */
                   2838:                a->x.ints[1] = 6;  /* %f^n */
                   2839:                a->x.ints[0] = 6;  /* %f^n */
                   2840:                a->x.ints[4] = 8;  /* d */
                   2841:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2842:        case 517: L517:   /* GTI */
                   2843:                dumptree(a, a->op);
                   2844:                rewrite(a->kids[0]);
                   2845:                rewrite(a->kids[1]);
                   2846:                a->syms[2] = a->syms[0];
                   2847:                a->x.ints[2] = 57;  /* ^c */
                   2848:                a->x.ints[3] = 21;  /* g */
                   2849:                a->x.ints[1] = 1;  /* %^n */
                   2850:                a->x.ints[0] = 1;  /* %^n */
                   2851:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2852:        case 518: L518:   /* GTU */
                   2853:                dumptree(a, a->op);
                   2854:                rewrite(a->kids[0]);
                   2855:                rewrite(a->kids[1]);
                   2856:                a->syms[2] = a->syms[0];
                   2857:                a->x.ints[2] = 57;  /* ^c */
                   2858:                a->x.ints[3] = 20;  /* gu */
                   2859:                a->x.ints[1] = 1;  /* %^n */
                   2860:                a->x.ints[0] = 1;  /* %^n */
                   2861:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2862:        case 529: L529:   /* LEF */
                   2863:                dumptree(a, a->op);
                   2864:                rewrite(a->kids[0]);
                   2865:                rewrite(a->kids[1]);
                   2866:                a->syms[2] = a->syms[0];
                   2867:                a->x.ints[2] = 57;  /* ^c */
                   2868:                a->x.ints[3] = 31;  /* ule */
                   2869:                a->x.ints[1] = 6;  /* %f^n */
                   2870:                a->x.ints[0] = 6;  /* %f^n */
                   2871:                a->x.ints[4] = 7;  /* s */
                   2872:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2873:        case 530: L530:   /* LED */
                   2874:                dumptree(a, a->op);
                   2875:                rewrite(a->kids[0]);
                   2876:                rewrite(a->kids[1]);
                   2877:                a->syms[2] = a->syms[0];
                   2878:                a->x.ints[2] = 57;  /* ^c */
                   2879:                a->x.ints[3] = 31;  /* ule */
                   2880:                a->x.ints[1] = 6;  /* %f^n */
                   2881:                a->x.ints[0] = 6;  /* %f^n */
                   2882:                a->x.ints[4] = 8;  /* d */
                   2883:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2884:        case 533: L533:   /* LEI */
                   2885:                dumptree(a, a->op);
                   2886:                rewrite(a->kids[0]);
                   2887:                rewrite(a->kids[1]);
                   2888:                a->syms[2] = a->syms[0];
                   2889:                a->x.ints[2] = 57;  /* ^c */
                   2890:                a->x.ints[3] = 27;  /* le */
                   2891:                a->x.ints[1] = 1;  /* %^n */
                   2892:                a->x.ints[0] = 1;  /* %^n */
                   2893:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2894:        case 534: L534:   /* LEU */
                   2895:                dumptree(a, a->op);
                   2896:                rewrite(a->kids[0]);
                   2897:                rewrite(a->kids[1]);
                   2898:                a->syms[2] = a->syms[0];
                   2899:                a->x.ints[2] = 57;  /* ^c */
                   2900:                a->x.ints[3] = 26;  /* leu */
                   2901:                a->x.ints[1] = 1;  /* %^n */
                   2902:                a->x.ints[0] = 1;  /* %^n */
                   2903:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2904:        case 545: L545:   /* LTF */
                   2905:                dumptree(a, a->op);
                   2906:                rewrite(a->kids[0]);
                   2907:                rewrite(a->kids[1]);
                   2908:                a->syms[2] = a->syms[0];
                   2909:                a->x.ints[2] = 57;  /* ^c */
                   2910:                a->x.ints[3] = 30;  /* ul */
                   2911:                a->x.ints[1] = 6;  /* %f^n */
                   2912:                a->x.ints[0] = 6;  /* %f^n */
                   2913:                a->x.ints[4] = 7;  /* s */
                   2914:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2915:        case 546: L546:   /* LTD */
                   2916:                dumptree(a, a->op);
                   2917:                rewrite(a->kids[0]);
                   2918:                rewrite(a->kids[1]);
                   2919:                a->syms[2] = a->syms[0];
                   2920:                a->x.ints[2] = 57;  /* ^c */
                   2921:                a->x.ints[3] = 30;  /* ul */
                   2922:                a->x.ints[1] = 6;  /* %f^n */
                   2923:                a->x.ints[0] = 6;  /* %f^n */
                   2924:                a->x.ints[4] = 8;  /* d */
                   2925:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2926:        case 549: L549:   /* LTI */
                   2927:                dumptree(a, a->op);
                   2928:                rewrite(a->kids[0]);
                   2929:                rewrite(a->kids[1]);
                   2930:                a->syms[2] = a->syms[0];
                   2931:                a->x.ints[2] = 57;  /* ^c */
                   2932:                a->x.ints[3] = 25;  /* l */
                   2933:                a->x.ints[1] = 1;  /* %^n */
                   2934:                a->x.ints[0] = 1;  /* %^n */
                   2935:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2936:        case 550: L550:   /* LTU */
                   2937:                dumptree(a, a->op);
                   2938:                rewrite(a->kids[0]);
                   2939:                rewrite(a->kids[1]);
                   2940:                a->syms[2] = a->syms[0];
                   2941:                a->x.ints[2] = 57;  /* ^c */
                   2942:                a->x.ints[3] = 24;  /* lu */
                   2943:                a->x.ints[1] = 1;  /* %^n */
                   2944:                a->x.ints[0] = 1;  /* %^n */
                   2945:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2946:        case 561: L561:   /* NEF */
                   2947:                dumptree(a, a->op);
                   2948:                rewrite(a->kids[0]);
                   2949:                rewrite(a->kids[1]);
                   2950:                a->syms[2] = a->syms[0];
                   2951:                a->x.ints[2] = 57;  /* ^c */
                   2952:                a->x.ints[3] = 19;  /* ne */
                   2953:                a->x.ints[1] = 6;  /* %f^n */
                   2954:                a->x.ints[0] = 6;  /* %f^n */
                   2955:                a->x.ints[4] = 7;  /* s */
                   2956:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2957:        case 562: L562:   /* NED */
                   2958:                dumptree(a, a->op);
                   2959:                rewrite(a->kids[0]);
                   2960:                rewrite(a->kids[1]);
                   2961:                a->syms[2] = a->syms[0];
                   2962:                a->x.ints[2] = 57;  /* ^c */
                   2963:                a->x.ints[3] = 19;  /* ne */
                   2964:                a->x.ints[1] = 6;  /* %f^n */
                   2965:                a->x.ints[0] = 6;  /* %f^n */
                   2966:                a->x.ints[4] = 8;  /* d */
                   2967:                goto L626;   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   2968:        case 565: L565:   /* NEI */
                   2969:                dumptree(a, a->op);
                   2970:                rewrite(a->kids[0]);
                   2971:                rewrite(a->kids[1]);
                   2972:                a->syms[2] = a->syms[0];
                   2973:                a->x.ints[2] = 57;  /* ^c */
                   2974:                a->x.ints[3] = 19;  /* ne */
                   2975:                a->x.ints[1] = 1;  /* %^n */
                   2976:                a->x.ints[0] = 1;  /* %^n */
                   2977:                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   2978:        case 584: L584:   /* JUMPV */
                   2979:                dumptree(a, a->op);
                   2980:                rewrite(a->kids[0]);
                   2981:                a->x.ints[0] = 1;  /* %^n */
                   2982:                goto L632;   /* jmp ^y; nop */
                   2983:        case 600: L600:   /* LABELV */
                   2984:                dumptree(a, a->op);
                   2985:                a->syms[2] = a->syms[0];
                   2986:                a->x.ints[2] = 57;  /* ^c */
                   2987:                goto L613;   /* ^z: */
                   2988:        case 608: L608:   /* mov ^x,%o1; call ^f,2; mov ^y,%o0; mov %o0,^z */
                   2989:                dumptree(a, 608);
                   2990:                a->op = 608;
                   2991:                break;
                   2992:        case 609: L609:   /* call ^y; nop */
                   2993:                dumptree(a, 609);
                   2994:                b = a->kids[0];
                   2995:                if (
                   2996:                a->x.ints[0] == 1  /* %^n */
                   2997:                && b->op == 638  /* set ^y,^z */
                   2998:                && b->x.ints[0] == 58  /* _^c */
                   2999:                ) {
                   3000:                        if (--b->count > 0) {
                   3001:                                if (c=b->kids[0]) ++c->count;
                   3002:                                if (c=b->kids[3]) ++c->count;
                   3003:                        }
                   3004:                        a->syms[0] = b->syms[0];
                   3005:                        a->kids[3] = b->kids[3];
                   3006:                        a->x.ints[0] = b->x.ints[0];
                   3007:                        a->kids[0] = b->kids[0];
                   3008:                        goto L609;   /* call ^y; nop */
                   3009:                }
                   3010:                a->op = 609;
                   3011:                break;
                   3012:        case 610: L610:   /* call ^y; st ^z,[%sp+64] */
                   3013:                dumptree(a, 610);
                   3014:                b = a->kids[0];
                   3015:                if (
                   3016:                a->x.ints[0] == 1  /* %^n */
                   3017:                && b->op == 638  /* set ^y,^z */
                   3018:                && b->x.ints[0] == 58  /* _^c */
                   3019:                ) {
                   3020:                        if (--b->count > 0) {
                   3021:                                if (c=b->kids[0]) ++c->count;
                   3022:                                if (c=b->kids[3]) ++c->count;
                   3023:                        }
                   3024:                        a->syms[0] = b->syms[0];
                   3025:                        a->kids[3] = b->kids[3];
                   3026:                        a->x.ints[0] = b->x.ints[0];
                   3027:                        a->kids[0] = b->kids[0];
                   3028:                        goto L610;   /* call ^y; st ^z,[%sp+64] */
                   3029:                }
                   3030:                a->op = 610;
                   3031:                break;
                   3032:        case 611: L611:   /* fdtoi ^y,%f0; st %f0,[%sp+64]; ld [%sp+64],^z */
                   3033:                dumptree(a, 611);
                   3034:                a->op = 611;
                   3035:                break;
                   3036:        case 612: L612:   /* sll ^y,^x,%g1; sra %g1,^x,^z */
                   3037:                dumptree(a, 612);
                   3038:                if (
                   3039:                a->x.ints[0] == 1  /* %^n */
                   3040:                && a->x.ints[1] == 57  /* ^c */
                   3041:                ) {
                   3042:                        b = a->kids[0];
                   3043:                        if (
                   3044:                        a->syms[1]->x.name == sym[4].x.name  /* 16 */
                   3045:                        && a->x.ints[1] == 57  /* ^c */
                   3046:                        && a->syms[1]->x.name == sym[4].x.name  /* 16 */
                   3047:                        && b->count == 1
                   3048:                        && b->op == 634  /* ld^t [^y],^z */
                   3049:                        && b->x.ints[4] == 2  /* sh */
                   3050:                        ) {
                   3051:                                if (--b->count > 0) {
                   3052:                                        if (c=b->kids[0]) ++c->count;
                   3053:                                        if (c=b->kids[3]) ++c->count;
                   3054:                                }
                   3055:                                a->x.ints[4] = 2;  /* sh */
                   3056:                                a->syms[0] = b->syms[0];
                   3057:                                a->kids[3] = b->kids[3];
                   3058:                                a->x.ints[0] = b->x.ints[0];
                   3059:                                a->kids[0] = b->kids[0];
                   3060:                                goto L634;   /* ld^t [^y],^z */
                   3061:                        }
                   3062:                        if (
                   3063:                        a->syms[1]->x.name == sym[5].x.name  /* 24 */
                   3064:                        && a->x.ints[1] == 57  /* ^c */
                   3065:                        && a->syms[1]->x.name == sym[5].x.name  /* 24 */
                   3066:                        && b->count == 1
                   3067:                        && b->op == 634  /* ld^t [^y],^z */
                   3068:                        && b->x.ints[4] == 1  /* sb */
                   3069:                        ) {
                   3070:                                if (--b->count > 0) {
                   3071:                                        if (c=b->kids[0]) ++c->count;
                   3072:                                        if (c=b->kids[3]) ++c->count;
                   3073:                                }
                   3074:                                a->x.ints[4] = 1;  /* sb */
                   3075:                                a->syms[0] = b->syms[0];
                   3076:                                a->kids[3] = b->kids[3];
                   3077:                                a->x.ints[0] = b->x.ints[0];
                   3078:                                a->kids[0] = b->kids[0];
                   3079:                                goto L634;   /* ld^t [^y],^z */
                   3080:                        }
                   3081:                }
                   3082:                a->op = 612;
                   3083:                break;
                   3084:        case 613: L613:   /* ^z: */
                   3085:                dumptree(a, 613);
                   3086:                a->op = 613;
                   3087:                break;
                   3088:        case 614: L614:   /* nop */
                   3089:                dumptree(a, 614);
                   3090:                a->op = 614;
                   3091:                break;
                   3092:        case 615: L615:   /* # argd */
                   3093:                dumptree(a, 615);
                   3094:                a->op = 615;
                   3095:                break;
                   3096:        case 616: L616:   /* # movd */
                   3097:                dumptree(a, 616);
                   3098:                a->op = 616;
                   3099:                break;
                   3100:        case 617: L617:   /* # negd */
                   3101:                dumptree(a, 617);
                   3102:                a->op = 617;
                   3103:                break;
                   3104:        case 618: L618:   /* # asgnb */
                   3105:                dumptree(a, 618);
                   3106:                a->op = 618;
                   3107:                break;
                   3108:        case 619: L619:   /* # reg */
                   3109:                dumptree(a, 619);
                   3110:                a->op = 619;
                   3111:                break;
                   3112:        case 620: L620:   /* # ret */
                   3113:                dumptree(a, 620);
                   3114:                a->op = 620;
                   3115:                break;
                   3116:        case 621: L621:   /* # label */
                   3117:                dumptree(a, 621);
                   3118:                a->op = 621;
                   3119:                break;
                   3120:        case 622: L622:   /* ^f ^y,^x,^z */
                   3121:                dumptree(a, 622);
                   3122:                if (
                   3123:                a->x.ints[1] == 1  /* %^n */
                   3124:                ) {
                   3125:                        b = a->kids[1];
                   3126:                        if (
                   3127:                        b->op == 638  /* set ^y,^z */
                   3128:                        && b->x.ints[0] == 57  /* ^c */
                   3129:                        && range(getint(a->kids[1]->syms[0]),13)
                   3130:                        ) {
                   3131:                                if (--b->count > 0) {
                   3132:                                        if (c=b->kids[0]) ++c->count;
                   3133:                                        if (c=b->kids[3]) ++c->count;
                   3134:                                }
                   3135:                                a->syms[1] = b->syms[0];
                   3136:                                a->kids[4] = b->kids[3];
                   3137:                                a->x.ints[1] = b->x.ints[0];
                   3138:                                a->kids[1] = b->kids[0];
                   3139:                                goto L622;   /* ^f ^y,^x,^z */
                   3140:                        }
                   3141:                        if (
                   3142:                        b->count == 1
                   3143:                        && b->op == 636  /* mov ^y,^z */
                   3144:                        && b->x.ints[0] == 1  /* %^n */
                   3145:                        ) {
                   3146:                                if (--b->count > 0) {
                   3147:                                        if (c=b->kids[0]) ++c->count;
                   3148:                                        if (c=b->kids[3]) ++c->count;
                   3149:                                }
                   3150:                                a->syms[1] = b->syms[0];
                   3151:                                a->kids[4] = b->kids[3];
                   3152:                                a->x.ints[1] = b->x.ints[0];
                   3153:                                a->kids[1] = b->kids[0];
                   3154:                                goto L622;   /* ^f ^y,^x,^z */
                   3155:                        }
                   3156:                }
                   3157:                b = a->kids[0];
                   3158:                if (
                   3159:                a->x.ints[0] == 1  /* %^n */
                   3160:                && b->count == 1
                   3161:                && b->op == 636  /* mov ^y,^z */
                   3162:                && b->x.ints[0] == 1  /* %^n */
                   3163:                ) {
                   3164:                        if (--b->count > 0) {
                   3165:                                if (c=b->kids[0]) ++c->count;
                   3166:                                if (c=b->kids[3]) ++c->count;
                   3167:                        }
                   3168:                        a->syms[0] = b->syms[0];
                   3169:                        a->kids[3] = b->kids[3];
                   3170:                        a->x.ints[0] = b->x.ints[0];
                   3171:                        a->kids[0] = b->kids[0];
                   3172:                        goto L622;   /* ^f ^y,^x,^z */
                   3173:                }
                   3174:                if (
                   3175:                a->x.ints[3] == 2  /* and */
                   3176:                && a->x.ints[0] == 1  /* %^n */
                   3177:                && a->x.ints[1] == 57  /* ^c */
                   3178:                && a->syms[1]->x.name == sym[2].x.name  /* 0xff */
                   3179:                && b->count == 1
                   3180:                && b->op == 634  /* ld^t [^y],^z */
                   3181:                && b->x.ints[4] == 1  /* sb */
                   3182:                ) {
                   3183:                        if (--b->count > 0) {
                   3184:                                if (c=b->kids[0]) ++c->count;
                   3185:                                if (c=b->kids[3]) ++c->count;
                   3186:                        }
                   3187:                        a->x.ints[4] = 3;  /* ub */
                   3188:                        a->syms[0] = b->syms[0];
                   3189:                        a->kids[3] = b->kids[3];
                   3190:                        a->x.ints[0] = b->x.ints[0];
                   3191:                        a->kids[0] = b->kids[0];
                   3192:                        goto L634;   /* ld^t [^y],^z */
                   3193:                }
                   3194:                a->op = 622;
                   3195:                break;
                   3196:        case 623: L623:   /* f^f^t ^y,^x,^z */
                   3197:                dumptree(a, 623);
                   3198:                a->op = 623;
                   3199:                break;
                   3200:        case 624: L624:   /* call ^y,2; nop */
                   3201:                dumptree(a, 624);
                   3202:                a->op = 624;
                   3203:                break;
                   3204:        case 625: L625:   /* cmp ^y,^x; b^f ^z; nop */
                   3205:                dumptree(a, 625);
                   3206:                if (
                   3207:                a->x.ints[1] == 1  /* %^n */
                   3208:                ) {
                   3209:                        b = a->kids[1];
                   3210:                        if (
                   3211:                        b->op == 638  /* set ^y,^z */
                   3212:                        && b->x.ints[0] == 57  /* ^c */
                   3213:                        && range(getint(a->kids[1]->syms[0]),13)
                   3214:                        ) {
                   3215:                                if (--b->count > 0) {
                   3216:                                        if (c=b->kids[0]) ++c->count;
                   3217:                                        if (c=b->kids[3]) ++c->count;
                   3218:                                }
                   3219:                                a->syms[1] = b->syms[0];
                   3220:                                a->kids[4] = b->kids[3];
                   3221:                                a->x.ints[1] = b->x.ints[0];
                   3222:                                a->kids[1] = b->kids[0];
                   3223:                                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   3224:                        }
                   3225:                        if (
                   3226:                        b->count == 1
                   3227:                        && b->op == 636  /* mov ^y,^z */
                   3228:                        && b->x.ints[0] == 1  /* %^n */
                   3229:                        ) {
                   3230:                                if (--b->count > 0) {
                   3231:                                        if (c=b->kids[0]) ++c->count;
                   3232:                                        if (c=b->kids[3]) ++c->count;
                   3233:                                }
                   3234:                                a->syms[1] = b->syms[0];
                   3235:                                a->kids[4] = b->kids[3];
                   3236:                                a->x.ints[1] = b->x.ints[0];
                   3237:                                a->kids[1] = b->kids[0];
                   3238:                                goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   3239:                        }
                   3240:                }
                   3241:                b = a->kids[0];
                   3242:                if (
                   3243:                a->x.ints[0] == 1  /* %^n */
                   3244:                && b->count == 1
                   3245:                && b->op == 636  /* mov ^y,^z */
                   3246:                && b->x.ints[0] == 1  /* %^n */
                   3247:                ) {
                   3248:                        if (--b->count > 0) {
                   3249:                                if (c=b->kids[0]) ++c->count;
                   3250:                                if (c=b->kids[3]) ++c->count;
                   3251:                        }
                   3252:                        a->syms[0] = b->syms[0];
                   3253:                        a->kids[3] = b->kids[3];
                   3254:                        a->x.ints[0] = b->x.ints[0];
                   3255:                        a->kids[0] = b->kids[0];
                   3256:                        goto L625;   /* cmp ^y,^x; b^f ^z; nop */
                   3257:                }
                   3258:                a->op = 625;
                   3259:                break;
                   3260:        case 626: L626:   /* fcmpe^t ^y,^x; nop; fb^f ^z; nop */
                   3261:                dumptree(a, 626);
                   3262:                a->op = 626;
                   3263:                break;
                   3264:        case 627: L627:   /* fstod ^y,^z */
                   3265:                dumptree(a, 627);
                   3266:                a->op = 627;
                   3267:                break;
                   3268:        case 628: L628:   /* fdtos ^y,^z */
                   3269:                dumptree(a, 628);
                   3270:                a->op = 628;
                   3271:                break;
                   3272:        case 629: L629:   /* fnegs ^y,^z */
                   3273:                dumptree(a, 629);
                   3274:                a->op = 629;
                   3275:                break;
                   3276:        case 630: L630:   /* fmovd ^y,^z; fnegs ^z,^z */
                   3277:                dumptree(a, 630);
                   3278:                a->op = 630;
                   3279:                break;
                   3280:        case 631: L631:   /* st ^y,[%sp+64]; ld [%sp+64],^z; fitod ^z,^z */
                   3281:                dumptree(a, 631);
                   3282:                a->op = 631;
                   3283:                break;
                   3284:        case 632: L632:   /* jmp ^y; nop */
                   3285:                dumptree(a, 632);
                   3286:                b = a->kids[0];
                   3287:                if (
                   3288:                a->x.ints[0] == 1  /* %^n */
                   3289:                && b->op == 638  /* set ^y,^z */
                   3290:                && b->x.ints[0] == 58  /* _^c */
                   3291:                ) {
                   3292:                        --b->count;
                   3293:                        a->x.ints[0] = 57;  /* ^c */
                   3294:                        a->syms[0] = b->syms[0];
                   3295:                        a->kids[0] = 0;
                   3296:                        goto L633;   /* ba ^y; nop */
                   3297:                }
                   3298:                a->op = 632;
                   3299:                break;
                   3300:        case 633: L633:   /* ba ^y; nop */
                   3301:                dumptree(a, 633);
                   3302:                a->op = 633;
                   3303:                break;
                   3304:        case 634: L634:   /* ld^t [^y],^z */
                   3305:                dumptree(a, 634);
                   3306:                if (
                   3307:                a->x.ints[0] == 1  /* %^n */
                   3308:                ) {
                   3309:                        b = a->kids[0];
                   3310:                        if (
                   3311:                        b->op == 622  /* ^f ^y,^x,^z */
                   3312:                        && b->x.ints[3] == 1  /* add */
                   3313:                        && b->x.ints[0] == 57  /* ^c */
                   3314:                        && b->x.ints[1] == 3  /* %fp */
                   3315:                        ) {
                   3316:                                --b->count;
                   3317:                                a->x.ints[0] = 27;  /* %fp+^c */
                   3318:                                a->syms[0] = b->syms[0];
                   3319:                                a->kids[0] = 0;
                   3320:                                goto L634;   /* ld^t [^y],^z */
                   3321:                        }
                   3322:                        if (
                   3323:                        b->count == 1
                   3324:                        ) {
                   3325:                                switch (b->op) {
                   3326:                                case 622:   /* ^f ^y,^x,^z */
                   3327:                                        if (
                   3328:                                        b->x.ints[3] == 1  /* add */
                   3329:                                        && b->x.ints[0] == 1  /* %^n */
                   3330:                                        && b->x.ints[1] == 57  /* ^c */
                   3331:                                        ) {
                   3332:                                                if (--b->count > 0)
                   3333:                                                        if (c=b->kids[0]) ++c->count;
                   3334:                                                a->x.ints[0] = 15;  /* %^n+^c */
                   3335:                                                a->kids[0] = b->kids[0];
                   3336:                                                a->syms[0] = b->syms[1];
                   3337:                                                goto L634;   /* ld^t [^y],^z */
                   3338:                                        }
                   3339:                                        break;
                   3340:                                case 646:   /* set ^y,%g1; add %fp,%g1,^z */
                   3341:                                        --b->count;
                   3342:                                        a->x.ints[0] = 57;  /* ^c */
                   3343:                                        a->syms[0] = b->syms[0];
                   3344:                                        a->kids[0] = 0;
                   3345:                                        goto L641;   /* set ^y,%g1; ld^t [%fp+%g1],^z */
                   3346:                                }
                   3347:                        }
                   3348:                }
                   3349:                b = a->kids[0];
                   3350:                if (
                   3351:                "\1\1\1\1\1\0\0\1\0\1"[a->x.ints[4]]  /* <TMP717> */
                   3352:                && a->x.ints[0] == 1  /* %^n */
                   3353:                && b->count == 1
                   3354:                && b->op == 622  /* ^f ^y,^x,^z */
                   3355:                && b->x.ints[3] == 1  /* add */
                   3356:                && b->x.ints[0] == 1  /* %^n */
                   3357:                && b->x.ints[1] == 1  /* %^n */
                   3358:                ) {
                   3359:                        if (--b->count > 0) {
                   3360:                                if (c=b->kids[1]) ++c->count;
                   3361:                                if (c=b->kids[0]) ++c->count;
                   3362:                        }
                   3363:                        a->x.ints[0] = 8;  /* %^n+%^i */
                   3364:                        a->kids[0] = b->kids[0];
                   3365:                        a->kids[3] = b->kids[1];
                   3366:                        goto L634;   /* ld^t [^y],^z */
                   3367:                }
                   3368:                switch (a->x.ints[0]) {
                   3369:                case 1:   /* %^n */
                   3370:                        if (
                   3371:                        b->count == 1
                   3372:                        && b->op == 636  /* mov ^y,^z */
                   3373:                        && b->x.ints[0] == 1  /* %^n */
                   3374:                        ) {
                   3375:                                if (--b->count > 0) {
                   3376:                                        if (c=b->kids[0]) ++c->count;
                   3377:                                        if (c=b->kids[3]) ++c->count;
                   3378:                                }
                   3379:                                a->syms[0] = b->syms[0];
                   3380:                                a->kids[3] = b->kids[3];
                   3381:                                a->x.ints[0] = b->x.ints[0];
                   3382:                                a->kids[0] = b->kids[0];
                   3383:                                goto L634;   /* ld^t [^y],^z */
                   3384:                        }
                   3385:                        break;
                   3386:                case 27:   /* %fp+^c */
                   3387:                        if (
                   3388:                        isregvar(a->syms[0])
                   3389:                        ) {
                   3390:                                a->x.ints[2] = 2;  /* %^c */
                   3391:                                a->x.ints[0] = 2;  /* %^c */
                   3392:                                goto L636;   /* mov ^y,^z */
                   3393:                        }
                   3394:                        break;
                   3395:                }
                   3396:                a->op = 634;
                   3397:                break;
                   3398:        case 635: L635:   /* ld [^y],^z; ld [^y+4],^x */
                   3399:                dumptree(a, 635);
                   3400:                a->op = 635;
                   3401:                break;
                   3402:        case 636: L636:   /* mov ^y,^z */
                   3403:                dumptree(a, 636);
                   3404:                switch (a->x.ints[0]) {
                   3405:                case 1:   /* %^n */
                   3406:                        if (
                   3407:                        a->kids[0]->count == 1
                   3408:                        ) {
                   3409:                                b = a->kids[0];
                   3410:                                switch (b->op) {
                   3411:                                case 622:   /* ^f ^y,^x,^z */
                   3412:                                        if (--b->count > 0) {
                   3413:                                                if (c=b->kids[1]) ++c->count;
                   3414:                                                if (c=b->kids[4]) ++c->count;
                   3415:                                                if (c=b->kids[0]) ++c->count;
                   3416:                                                if (c=b->kids[3]) ++c->count;
                   3417:                                        }
                   3418:                                        a->x.ints[3] = b->x.ints[3];
                   3419:                                        a->syms[0] = b->syms[0];
                   3420:                                        a->kids[3] = b->kids[3];
                   3421:                                        a->x.ints[0] = b->x.ints[0];
                   3422:                                        a->kids[0] = b->kids[0];
                   3423:                                        a->syms[1] = b->syms[1];
                   3424:                                        a->kids[4] = b->kids[4];
                   3425:                                        a->kids[1] = b->kids[1];
                   3426:                                        a->x.ints[1] = b->x.ints[1];
                   3427:                                        goto L622;   /* ^f ^y,^x,^z */
                   3428:                                case 634:   /* ld^t [^y],^z */
                   3429:                                        if (--b->count > 0) {
                   3430:                                                if (c=b->kids[0]) ++c->count;
                   3431:                                                if (c=b->kids[3]) ++c->count;
                   3432:                                        }
                   3433:                                        a->x.ints[4] = b->x.ints[4];
                   3434:                                        a->syms[0] = b->syms[0];
                   3435:                                        a->kids[3] = b->kids[3];
                   3436:                                        a->x.ints[0] = b->x.ints[0];
                   3437:                                        a->kids[0] = b->kids[0];
                   3438:                                        goto L634;   /* ld^t [^y],^z */
                   3439:                                case 636:   /* mov ^y,^z */
                   3440:                                        if (
                   3441:                                        b->x.ints[0] == 1  /* %^n */
                   3442:                                        ) {
                   3443:                                                if (--b->count > 0) {
                   3444:                                                        if (c=b->kids[0]) ++c->count;
                   3445:                                                        if (c=b->kids[3]) ++c->count;
                   3446:                                                }
                   3447:                                                a->syms[0] = b->syms[0];
                   3448:                                                a->kids[3] = b->kids[3];
                   3449:                                                a->x.ints[0] = b->x.ints[0];
                   3450:                                                a->kids[0] = b->kids[0];
                   3451:                                                goto L636;   /* mov ^y,^z */
                   3452:                                        }
                   3453:                                        break;
                   3454:                                case 638:   /* set ^y,^z */
                   3455:                                        if (--b->count > 0) {
                   3456:                                                if (c=b->kids[0]) ++c->count;
                   3457:                                                if (c=b->kids[3]) ++c->count;
                   3458:                                        }
                   3459:                                        a->syms[0] = b->syms[0];
                   3460:                                        a->kids[3] = b->kids[3];
                   3461:                                        a->x.ints[0] = b->x.ints[0];
                   3462:                                        a->kids[0] = b->kids[0];
                   3463:                                        goto L638;   /* set ^y,^z */
                   3464:                                case 641:   /* set ^y,%g1; ld^t [%fp+%g1],^z */
                   3465:                                        if (--b->count > 0) {
                   3466:                                                if (c=b->kids[0]) ++c->count;
                   3467:                                                if (c=b->kids[3]) ++c->count;
                   3468:                                        }
                   3469:                                        a->x.ints[4] = b->x.ints[4];
                   3470:                                        a->syms[0] = b->syms[0];
                   3471:                                        a->kids[3] = b->kids[3];
                   3472:                                        a->x.ints[0] = b->x.ints[0];
                   3473:                                        a->kids[0] = b->kids[0];
                   3474:                                        goto L641;   /* set ^y,%g1; ld^t [%fp+%g1],^z */
                   3475:                                }
                   3476:                        }
                   3477:                        break;
                   3478:                case 2:   /* %^c */
                   3479:                        if (
                   3480:                        a->x.ints[2] == 2  /* %^c */
                   3481:                        && rmcopy(a)
                   3482:                        ) {
                   3483:                                a->syms[2] = a->syms[0];
                   3484:                                goto L619;   /* # reg */
                   3485:                        }
                   3486:                        break;
                   3487:                }
                   3488:                a->op = 636;
                   3489:                break;
                   3490:        case 637: L637:   /* fmov^t ^y,^z */
                   3491:                dumptree(a, 637);
                   3492:                a->op = 637;
                   3493:                break;
                   3494:        case 638: L638:   /* set ^y,^z */
                   3495:                dumptree(a, 638);
                   3496:                if (
                   3497:                a->x.ints[0] == 57  /* ^c */
                   3498:                && a->syms[0]->x.name == sym[1].x.name  /* 0 */
                   3499:                ) {
                   3500:                        setreg(a,g0);
                   3501:                        goto L619;   /* # reg */
                   3502:                }
                   3503:                a->op = 638;
                   3504:                break;
                   3505:        case 639: L639:   /* set 0xffff,%g1; and ^y,%g1,^z */
                   3506:                dumptree(a, 639);
                   3507:                b = a->kids[0];
                   3508:                if (
                   3509:                a->x.ints[0] == 1  /* %^n */
                   3510:                && b->count == 1
                   3511:                && b->op == 634  /* ld^t [^y],^z */
                   3512:                && b->x.ints[4] == 2  /* sh */
                   3513:                ) {
                   3514:                        if (--b->count > 0) {
                   3515:                                if (c=b->kids[0]) ++c->count;
                   3516:                                if (c=b->kids[3]) ++c->count;
                   3517:                        }
                   3518:                        a->x.ints[4] = 4;  /* uh */
                   3519:                        a->syms[0] = b->syms[0];
                   3520:                        a->kids[3] = b->kids[3];
                   3521:                        a->x.ints[0] = b->x.ints[0];
                   3522:                        a->kids[0] = b->kids[0];
                   3523:                        goto L634;   /* ld^t [^y],^z */
                   3524:                }
                   3525:                a->op = 639;
                   3526:                break;
                   3527:        case 640: L640:   /* set ^z,%g1; st^t ^y,[%fp+%g1] */
                   3528:                dumptree(a, 640);
                   3529:                a->op = 640;
                   3530:                break;
                   3531:        case 641: L641:   /* set ^y,%g1; ld^t [%fp+%g1],^z */
                   3532:                dumptree(a, 641);
                   3533:                a->op = 641;
                   3534:                break;
                   3535:        case 642: L642:   /* st^t ^y,[^z] */
                   3536:                dumptree(a, 642);
                   3537:                if (
                   3538:                a->x.ints[0] == 1  /* %^n */
                   3539:                && a->x.ints[2] == 35  /* %sp+4*^c+68 */
                   3540:                && 6>a->syms[1]->u.c.v.i
                   3541:                ) {
                   3542:                        a->x.ints[2] = 2;  /* %^c */
                   3543:                        a->x.ints[0] = 1;  /* %^n */
                   3544:                        a->syms[2]=oreg[a->syms[1]->u.c.v.i];
                   3545:                        goto L636;   /* mov ^y,^z */
                   3546:                }
                   3547:                if (
                   3548:                a->x.ints[2] == 1  /* %^n */
                   3549:                ) {
                   3550:                        b = a->kids[2];
                   3551:                        if (
                   3552:                        b->op == 622  /* ^f ^y,^x,^z */
                   3553:                        && b->x.ints[3] == 1  /* add */
                   3554:                        && b->x.ints[0] == 57  /* ^c */
                   3555:                        && b->x.ints[1] == 3  /* %fp */
                   3556:                        ) {
                   3557:                                --b->count;
                   3558:                                a->x.ints[2] = 27;  /* %fp+^c */
                   3559:                                a->syms[2] = b->syms[0];
                   3560:                                a->kids[2] = 0;
                   3561:                                goto L642;   /* st^t ^y,[^z] */
                   3562:                        }
                   3563:                        if (
                   3564:                        b->count == 1
                   3565:                        ) {
                   3566:                                switch (b->op) {
                   3567:                                case 622:   /* ^f ^y,^x,^z */
                   3568:                                        if (
                   3569:                                        b->x.ints[3] == 1  /* add */
                   3570:                                        && b->x.ints[0] == 1  /* %^n */
                   3571:                                        && b->x.ints[1] == 57  /* ^c */
                   3572:                                        ) {
                   3573:                                                if (--b->count > 0)
                   3574:                                                        if (c=b->kids[0]) ++c->count;
                   3575:                                                a->x.ints[2] = 15;  /* %^n+^c */
                   3576:                                                a->kids[2] = b->kids[0];
                   3577:                                                a->syms[2] = b->syms[1];
                   3578:                                                goto L642;   /* st^t ^y,[^z] */
                   3579:                                        }
                   3580:                                        break;
                   3581:                                case 646:   /* set ^y,%g1; add %fp,%g1,^z */
                   3582:                                        --b->count;
                   3583:                                        a->x.ints[2] = 57;  /* ^c */
                   3584:                                        a->syms[2] = b->syms[0];
                   3585:                                        a->kids[2] = 0;
                   3586:                                        goto L640;   /* set ^z,%g1; st^t ^y,[%fp+%g1] */
                   3587:                                }
                   3588:                        }
                   3589:                }
                   3590:                b = a->kids[2];
                   3591:                if (
                   3592:                "\1\0\0\0\0\1\1\1\0\1"[a->x.ints[4]]  /* <TMP851> */
                   3593:                && a->x.ints[2] == 1  /* %^n */
                   3594:                && b->count == 1
                   3595:                && b->op == 622  /* ^f ^y,^x,^z */
                   3596:                && b->x.ints[3] == 1  /* add */
                   3597:                && b->x.ints[0] == 1  /* %^n */
                   3598:                && b->x.ints[1] == 1  /* %^n */
                   3599:                ) {
                   3600:                        if (--b->count > 0) {
                   3601:                                if (c=b->kids[1]) ++c->count;
                   3602:                                if (c=b->kids[0]) ++c->count;
                   3603:                        }
                   3604:                        a->x.ints[2] = 8;  /* %^n+%^i */
                   3605:                        a->kids[2] = b->kids[0];
                   3606:                        a->kids[5] = b->kids[1];
                   3607:                        goto L642;   /* st^t ^y,[^z] */
                   3608:                }
                   3609:                if (
                   3610:                a->x.ints[2] == 1  /* %^n */
                   3611:                && b->count == 1
                   3612:                && b->op == 636  /* mov ^y,^z */
                   3613:                ) {
                   3614:                        if (--b->count > 0) {
                   3615:                                if (c=b->kids[0]) ++c->count;
                   3616:                                if (c=b->kids[3]) ++c->count;
                   3617:                        }
                   3618:                        a->syms[2] = b->syms[0];
                   3619:                        a->kids[5] = b->kids[3];
                   3620:                        a->x.ints[2] = b->x.ints[0];
                   3621:                        a->kids[2] = b->kids[0];
                   3622:                        goto L642;   /* st^t ^y,[^z] */
                   3623:                }
                   3624:                b = a->kids[0];
                   3625:                if (
                   3626:                a->x.ints[0] == 1  /* %^n */
                   3627:                && b->count == 1
                   3628:                && b->op == 636  /* mov ^y,^z */
                   3629:                ) {
                   3630:                        if (--b->count > 0) {
                   3631:                                if (c=b->kids[0]) ++c->count;
                   3632:                                if (c=b->kids[3]) ++c->count;
                   3633:                        }
                   3634:                        a->syms[0] = b->syms[0];
                   3635:                        a->kids[3] = b->kids[3];
                   3636:                        a->x.ints[0] = b->x.ints[0];
                   3637:                        a->kids[0] = b->kids[0];
                   3638:                        goto L642;   /* st^t ^y,[^z] */
                   3639:                }
                   3640:                if (
                   3641:                a->x.ints[2] == 27  /* %fp+^c */
                   3642:                && isregvar(a->syms[2])
                   3643:                ) {
                   3644:                        a->x.ints[2] = 2;  /* %^c */
                   3645:                        goto L636;   /* mov ^y,^z */
                   3646:                }
                   3647:                a->op = 642;
                   3648:                break;
                   3649:        case 643: L643:   /* st ^y,[^z] */
                   3650:                dumptree(a, 643);
                   3651:                a->op = 643;
                   3652:                break;
                   3653:        case 644: L644:   /* st ^y,[^z]; st ^x,[^z+4] */
                   3654:                dumptree(a, 644);
                   3655:                a->op = 644;
                   3656:                break;
                   3657:        case 645: L645:   /* st ^y,[%sp+4*^z+68]; ld [%sp+4*^z+68],%o^x */
                   3658:                dumptree(a, 645);
                   3659:                a->op = 645;
                   3660:                break;
                   3661:        case 646: L646:   /* set ^y,%g1; add %fp,%g1,^z */
                   3662:                dumptree(a, 646);
                   3663:                if (
                   3664:                a->x.ints[2] == 2  /* %^c */
                   3665:                && isregvar(a->syms[0])||range(-a->syms[0]->x.offset,13)
                   3666:                ) {
                   3667:                        a->x.ints[1] = 3;  /* %fp */
                   3668:                        a->x.ints[3] = 1;  /* add */
                   3669:                        goto L622;   /* ^f ^y,^x,^z */
                   3670:                }
                   3671:                a->op = 646;
                   3672:                break;
                   3673:        case 647: L647:   /* call ^f,2; nop */
                   3674:                dumptree(a, 647);
                   3675:                a->op = 647;
                   3676:                break;
                   3677:        default:
                   3678:        assert(0);
                   3679:        }
                   3680: }
                   3681: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.