Annotation of researchv10no/cmd/lcc/gen2/sparc/sel.c, revision 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.