Annotation of researchv10no/cmd/lcc/gen2/mips/sel.c, revision 1.1

1.1     ! root        1: /* "jal $%0  # int" => ="jal %y  # int" A="$%n" 0=0 */
        !             2: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !             3: /* "j $%0" => ="j %y" A="$%n" 0=0 */
        !             4: /* "%0:" => ="%y:" A="%c" a=a */
        !             5: /* "la $%r,%0" => ="la $%r,%y" A="%c" a=a */
        !             6: /* "la $%r,%0($sp)" => ="la $%r,%y" A="%c($sp)" a=a */
        !             7: /* "la $%r,%0($sp)" => ="la $%r,%y" A="%c($sp)" a=a */
        !             8: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !             9: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            10: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            11: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            12: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            13: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            14: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            15: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            16: /* "trunc.w.d $f2,$f%0,$%r; mfc1 $%r,$f2" => ="%f.%t $f2,%y,$%r; mfc1 $%r,$f2" C="trunc.w" D="d" A="$f%n" 0=0 */
        !            17: /* "mtc1 $%0,$f%r; cvt.d.w $f%r,$f%r" => ="mtc1 %y,$f%r; %f.%t $f%r,$f%r" A="$%n" 0=0 C="cvt.d" D="w" */
        !            18: /* "cvt.s.d $f%r,$f%0" => ="%f.%t $f%r,%y" C="cvt.s" D="d" A="$f%n" 0=0 */
        !            19: /* "cvt.d.s $f%r,$f%0" => ="%f.%t $f%r,%y" C="cvt.d" D="s" A="$f%n" 0=0 */
        !            20: /* "s.d $f%0,%c($sp)" => ="s.%t $f%k,%y" D="d" 2=0 A="%c($sp)" */
        !            21: /* "s.s $f%0,%c($sp)" => ="s.%t $f%k,%y" D="s" 2=0 A="%c($sp)" */
        !            22: /* "sw $%0,%c($sp)" => ="s%t $%k,%y" D="w" 2=0 A="%c($sp)" */
        !            23: /* "sw $%0,%c($sp)" => ="s%t $%k,%y" D="w" 2=0 A="%c($sp)" */
        !            24: /* "s.d $f%1,($%0)" => ="s.%t $f%k,%y" D="d" 2=1 A="($%n)" 0=0 */
        !            25: /* "s.s $f%1,($%0)" => ="s.%t $f%k,%y" D="s" 2=1 A="($%n)" 0=0 */
        !            26: /* "sw $%1,($%0)" => ="s%t $%k,%y" D="w" 2=1 A="($%n)" 0=0 */
        !            27: /* "sb $%1,($%0)" => ="s%t $%k,%y" D="b" 2=1 A="($%n)" 0=0 */
        !            28: /* "sw $%1,($%0)" => ="s%t $%k,%y" D="w" 2=1 A="($%n)" 0=0 */
        !            29: /* "sh $%1,($%0)" => ="s%t $%k,%y" D="h" 2=1 A="($%n)" 0=0 */
        !            30: /* "jal $%0  # real" => ="jal %y  # real" A="$%n" 0=0 */
        !            31: /* "jal $%0  # real" => ="jal %y  # real" A="$%n" 0=0 */
        !            32: /* "jal $%0  # int" => ="jal %y  # int" A="$%n" 0=0 */
        !            33: /* "jal $%0  # int" => ="jal %y  # int" A="$%n" 0=0 */
        !            34: /* "li.d $f%r,%0" => ="li.%t $f%r,%y" D="d" A="%c" a=a */
        !            35: /* "li.s $f%r,%0" => ="li.%t $f%r,%y" D="s" A="%c" a=a */
        !            36: /* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
        !            37: /* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
        !            38: /* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
        !            39: /* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
        !            40: /* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
        !            41: /* "l.d $f%r,($%0)" => ="l.%t $f%r,%y" D="d" A="($%n)" 0=0 */
        !            42: /* "l.s $f%r,($%0)" => ="l.%t $f%r,%y" D="s" A="($%n)" 0=0 */
        !            43: /* "lw $%r,($%0)" => ="l%t $%r,%y" D="w" A="($%n)" 0=0 */
        !            44: /* "lb $%r,($%0)" => ="l%t $%r,%y" D="b" A="($%n)" 0=0 */
        !            45: /* "lw $%r,($%0)" => ="l%t $%r,%y" D="w" A="($%n)" 0=0 */
        !            46: /* "lh $%r,($%0)" => ="l%t $%r,%y" D="h" A="($%n)" 0=0 */
        !            47: /* "mov.d $f%r,$f%0" => ="mov.%t $f%r,%y" D="d" A="$f%n" 0=0 */
        !            48: /* "mov.s $f%r,$f%0" => ="mov.%t $f%r,%y" D="s" A="$f%n" 0=0 */
        !            49: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            50: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            51: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            52: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            53: /* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
        !            54: /* "neg.d $f%r,$f%0" => ="%f.%t $f%r,%y" C="neg" D="d" A="$f%n" 0=0 */
        !            55: /* "neg.s $f%r,$f%0" => ="%f.%t $f%r,%y" C="neg" D="s" A="$f%n" 0=0 */
        !            56: /* "sub.d $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="sub" D="d" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            57: /* "sub.s $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="sub" D="s" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            58: /* "mul.d $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="mul" D="d" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            59: /* "mul.s $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="mul" D="s" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            60: /* "div.d $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="div" D="d" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            61: /* "div.s $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="div" D="s" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            62: /* "add.d $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="add" D="d" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            63: /* "add.s $f%r,$f%0,$f%1" => ="%f.%t $f%r,%y,%x" C="add" D="s" A="$f%n" 0=0 B="$f%n" 1=1 */
        !            64: /* "negu $%r,$%0" => ="%f $%r,%y" C="negu" A="$%n" 0=0 */
        !            65: /* "not $%r,$%0" => ="%f $%r,%y" C="not" A="$%n" 0=0 */
        !            66: /* "sll $%r,$%0,24; sra $%r,$%r,%c" => ="sll $%r,%y,%x; %f $%r,$%r,%x" A="$%n" 0=0 B="%c" b="24" C="sra" B="%c" */
        !            67: /* "sll $%r,$%0,16; sra $%r,$%r,%c" => ="sll $%r,%y,%x; %f $%r,$%r,%x" A="$%n" 0=0 B="%c" b="16" C="sra" B="%c" */
        !            68: /* "and $%r,$%0,255" => ="%f $%r,%y,%x" C="and" A="$%n" 0=0 B="%c" b="255" */
        !            69: /* "and $%r,$%0,65535" => ="%f $%r,%y,%x" C="and" A="$%n" 0=0 B="%c" b="65535" */
        !            70: /* "divu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="divu" A="$%n" 0=0 B="$%n" 1=1 */
        !            71: /* "srl $%r,$%0,$%1" => ="%f $%r,%y,%x" C="srl" A="$%n" 0=0 B="$%n" 1=1 */
        !            72: /* "remu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="remu" A="$%n" 0=0 B="$%n" 1=1 */
        !            73: /* "c.eq.d $f%0,$f%1; bc1t %0" => ="c.%f.%t %y,%x; bc1t %r" C="eq" D="d" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            74: /* "c.eq.s $f%0,$f%1; bc1t %0" => ="c.%f.%t %y,%x; bc1t %r" C="eq" D="s" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            75: /* "c.le.d $f%0,$f%1; bc1t %0" => ="c.%f.%t %y,%x; bc1t %r" C="le" D="d" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            76: /* "c.le.s $f%0,$f%1; bc1t %0" => ="c.%f.%t %y,%x; bc1t %r" C="le" D="s" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            77: /* "c.lt.d $f%0,$f%1; bc1t %0" => ="c.%f.%t %y,%x; bc1t %r" C="lt" D="d" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            78: /* "c.lt.s $f%0,$f%1; bc1t %0" => ="c.%f.%t %y,%x; bc1t %r" C="lt" D="s" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            79: /* "c.le.d $f%0,$f%1; bc1f %0" => ="c.%f.%t %y,%x; bc1f %r" C="le" D="d" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            80: /* "c.le.s $f%0,$f%1; bc1f %0" => ="c.%f.%t %y,%x; bc1f %r" C="le" D="s" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            81: /* "c.eq.d $f%0,$f%1; bc1f %0" => ="c.%f.%t %y,%x; bc1f %r" C="eq" D="d" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            82: /* "c.eq.s $f%0,$f%1; bc1f %0" => ="c.%f.%t %y,%x; bc1f %r" C="eq" D="s" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            83: /* "c.lt.d $f%0,$f%1; bc1f %0" => ="c.%f.%t %y,%x; bc1f %r" C="lt" D="d" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            84: /* "c.lt.s $f%0,$f%1; bc1f %0" => ="c.%f.%t %y,%x; bc1f %r" C="lt" D="s" A="$f%n" 0=0 B="$f%n" 1=1 c=a */
        !            85: /* "bleu $%0,$%1,%0" => ="b%f %y,%x,%r" C="leu" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            86: /* "bge $%0,$%1,%0" => ="b%f %y,%x,%r" C="ge" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            87: /* "blt $%0,$%1,%0" => ="b%f %y,%x,%r" C="lt" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            88: /* "ble $%0,$%1,%0" => ="b%f %y,%x,%r" C="le" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            89: /* "beq $%0,$%1,%0" => ="b%f %y,%x,%r" C="eq" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            90: /* "bgtu $%0,$%1,%0" => ="b%f %y,%x,%r" C="gtu" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            91: /* "bltu $%0,$%1,%0" => ="b%f %y,%x,%r" C="ltu" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            92: /* "bne $%0,$%1,%0" => ="b%f %y,%x,%r" C="ne" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            93: /* "bgt $%0,$%1,%0" => ="b%f %y,%x,%r" C="gt" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            94: /* "bgeu $%0,$%1,%0" => ="b%f %y,%x,%r" C="geu" A="$%n" 0=0 B="$%n" 1=1 c=a */
        !            95: /* "rem $%r,$%0,$%1" => ="%f $%r,%y,%x" C="rem" A="$%n" 0=0 B="$%n" 1=1 */
        !            96: /* "rem $%r,$%0,$%1" => ="%f $%r,%y,%x" C="rem" A="$%n" 0=0 B="$%n" 1=1 */
        !            97: /* "mul $%r,$%0,$%1" => ="%f $%r,%y,%x" C="mul" A="$%n" 0=0 B="$%n" 1=1 */
        !            98: /* "mul $%r,$%0,$%1" => ="%f $%r,%y,%x" C="mul" A="$%n" 0=0 B="$%n" 1=1 */
        !            99: /* "xor $%r,$%0,$%1" => ="%f $%r,%y,%x" C="xor" A="$%n" 0=0 B="$%n" 1=1 */
        !           100: /* "div $%r,$%0,$%1" => ="%f $%r,%y,%x" C="div" A="$%n" 0=0 B="$%n" 1=1 */
        !           101: /* "div $%r,$%0,$%1" => ="%f $%r,%y,%x" C="div" A="$%n" 0=0 B="$%n" 1=1 */
        !           102: /* "sll $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sll" A="$%n" 0=0 B="$%n" 1=1 */
        !           103: /* "sll $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sll" A="$%n" 0=0 B="$%n" 1=1 */
        !           104: /* "addu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="addu" A="$%n" 0=0 B="$%n" 1=1 */
        !           105: /* "addu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="addu" A="$%n" 0=0 B="$%n" 1=1 */
        !           106: /* "addu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="addu" A="$%n" 0=0 B="$%n" 1=1 */
        !           107: /* "and $%r,$%0,$%1" => ="%f $%r,%y,%x" C="and" A="$%n" 0=0 B="$%n" 1=1 */
        !           108: /* "subu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="subu" A="$%n" 0=0 B="$%n" 1=1 */
        !           109: /* "subu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="subu" A="$%n" 0=0 B="$%n" 1=1 */
        !           110: /* "subu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="subu" A="$%n" 0=0 B="$%n" 1=1 */
        !           111: /* "sra $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sra" A="$%n" 0=0 B="$%n" 1=1 */
        !           112: /* "sra $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sra" A="$%n" 0=0 B="$%n" 1=1 */
        !           113: /* "or $%r,$%0,$%1" => ="%f $%r,%y,%x" C="or" A="$%n" 0=0 B="$%n" 1=1 */
        !           114: /* "j $%0" => ="j %y" A="$%n" 0=0 */
        !           115: /* "la $%r,%c" => ="la $%r,%y" 0A="%c" */
        !           116: /* "move $%r,$%c" => ="move $%r,%y" A="$%c" */
        !           117: /* "mov.%t $f%r,$f%c" => ="mov.%t $f%r,%y" A="$f%c" */
        !           118: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           119: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           120: /* "sw $%k,0($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="0" */
        !           121: /* "move $4,$%n" => ="move $%r,%y" c="4" A="$%n" */
        !           122: /* "sw $%k,4($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="4" */
        !           123: /* "move $5,$%n" => ="move $%r,%y" c="5" A="$%n" */
        !           124: /* "sw $%k,8($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="8" */
        !           125: /* "move $6,$%n" => ="move $%r,%y" c="6" A="$%n" */
        !           126: /* "sw $%k,12($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="12" */
        !           127: /* "move $7,$%n" => ="move $%r,%y" c="7" A="$%n" */
        !           128: /* "s.d $f%k,0($sp)" => ="s.%t $f%k,%y" D="d" A="%c($sp)" a="0" */
        !           129: /* "mfc1.d $4,$f%n" => ="mfc1.d $%r,%y" c="4" A="$f%n" */
        !           130: /* "s.s $f%k,0($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="0" */
        !           131: /* "mfc1 $4,$f%n" => ="mfc1 $%r,%y" c="4" A="$f%n" */
        !           132: /* "s.%t $f%k,0($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="0" */
        !           133: /* "mov.%t $f12,$f%n" => ="mov.%t $f%r,%y" c="12" A="$f%n" */
        !           134: /* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
        !           135: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           136: /* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
        !           137: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           138: /* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
        !           139: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           140: /* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
        !           141: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           142: /* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
        !           143: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           144: /* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
        !           145: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           146: /* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
        !           147: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           148: /* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
        !           149: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           150: /* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
        !           151: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           152: /* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
        !           153: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           154: /* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
        !           155: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           156: /* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
        !           157: /* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
        !           158: /* "s.d $f%k,8($sp)" => ="s.%t $f%k,%y" D="d" A="%c($sp)" a="8" */
        !           159: /* "mfc1.d $6,$f%n" => ="mfc1.d $%r,%y" c="6" A="$f%n" */
        !           160: /* "s.s $f%k,4($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="4" */
        !           161: /* "mfc1 $5,$f%n" => ="mfc1 $%r,%y" c="5" A="$f%n" */
        !           162: /* "s.s $f%k,8($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="8" */
        !           163: /* "mfc1 $6,$f%n" => ="mfc1 $%r,%y" c="6" A="$f%n" */
        !           164: /* "s.s $f%k,12($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="12" */
        !           165: /* "mfc1 $7,$f%n" => ="mfc1 $%r,%y" c="7" A="$f%n" */
        !           166: /* "mov.%t $f%r,$f%c" => ="mov.%t $f%r,%y" A="$f%c" */
        !           167: /* "move $%r,$%c" => ="move $%r,%y" A="$%c" */
        !           168: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           169: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           170: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           171: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           172: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           173: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           174: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           175: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           176: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           177: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           178: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           179: /* "ld $%r,$f%n" => ="l%t $%r,%y" D="d" A="$f%n" */
        !           180: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           181: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           182: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           183: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           184: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           185: /* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
        !           186: /* "jal $%n  # real" => ="jal %y  # real" A="$%n" */
        !           187: /* "la $%r,%c" => ="la $%r,%y" 0A="%c" */
        !           188: /* "jal $%n  # int" => ="jal %y  # int" A="$%n" */
        !           189: /* "la $%r,%c" => ="la $%r,%y" 0A="%c" */
        !           190: /* "addu $%r,%y,$%n" => ="%f $%r,%y,%x" C="addu" B="$%n" */
        !           191: /* "la $%r,%c" => ="la $%r,%y" 1A="%c" */
        !           192: /* "la $%r,%c($%n)" => ="la $%r,%y" A="%c($%n)" */
        !           193: /* "addu $%r,%y,$%n" => ="%f $%r,%y,%x" C="addu" B="$%n" */
        !           194: /* "li $%r,%c" => ="li $%r,%y" 1A="%c" */
        !           195: /* "la $%r,%c($%n)" => ="la $%r,%y" A="%c($%n)" */
        !           196: /* "li $%r,%c" => ="li $%r,%y" 1A="%c" */
        !           197: /* "li $%r,%c" => ="li $%r,%y" 1A="%c" */
        !           198: /* "li $%r,0" => ="li $%r,%y" A="%c" a="0" */
        !           199: /* "sll $%r,$%n,%x; sra $%r,$%r,%c" => ="sll $%r,%y,%x; %f $%r,$%r,%x" A="$%n" C="sra" B="%c" */
        !           200: /* "lh $%r,%y" => ="l%t $%r,%y" 0D="h" */
        !           201: /* "sll $%r,$%n,%x; sra $%r,$%r,%c" => ="sll $%r,%y,%x; %f $%r,$%r,%x" A="$%n" C="sra" B="%c" */
        !           202: /* "lb $%r,%y" => ="l%t $%r,%y" 0D="b" */
        !           203: /* "and $%r,$%n,65535" => ="%f $%r,%y,%x" C="and" A="$%n" B="%c" b="65535" */
        !           204: /* "lh $%r,%y" => ="l%t $%r,%y" 0D="h" */
        !           205: /* "and $%r,$%n,255" => ="%f $%r,%y,%x" C="and" A="$%n" B="%c" b="255" */
        !           206: /* "lb $%r,%y" => ="l%t $%r,%y" 0D="b" */
        !           207: /* "trunc.w.d $f2,$f%n,$%r; mfc1 $%r,$f2" => ="%f.%t $f2,%y,$%r; mfc1 $%r,$f2" C="trunc.w" D="d" A="$f%n" */
        !           208: /* "cvt.d.s $f%r,%y" => ="%f.%t $f%r,%y" 0C="cvt.d" 0D="s" */
        !           209: /* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
        !           210: /* "{sll|srl|sra} $%r,%y,%c" => ="%f $%r,%y,%x" C=@TMP1168 B="%c" */
        !           211: #include "pseudos.c"
        !           212: 
        !           213: static char *shortopcodes[] = {
        !           214: /* 608 */  "jal %y  # int",
        !           215: /* 609 */  "jal %y  # real",
        !           216: /* 610 */  "# asgnb",
        !           217: /* 611 */  "# argb",
        !           218: /* 612 */  "la $%r,%y",
        !           219: /* 613 */  "mfc1 $%r,%y",
        !           220: /* 614 */  "move $%r,%y",
        !           221: /* 615 */  "%f $%r,%y",
        !           222: /* 616 */  "li $%r,%y",
        !           223: /* 617 */  "l%t $%r,%y",
        !           224: /* 618 */  "%f.%t $f2,%y,$%r; mfc1 $%r,$f2",
        !           225: /* 619 */  "%f $%r,%y,%x",
        !           226: /* 620 */  "l%tu $%r,%y",
        !           227: /* 621 */  "# nop",
        !           228: /* 622 */  "# ret",
        !           229: /* 623 */  "%f.%t $f%r,%y",
        !           230: /* 624 */  "%f.%t $f%r,%y,%x",
        !           231: /* 625 */  "sll $%r,%y,%x; %f $%r,$%r,%x",
        !           232: /* 626 */  "# label",
        !           233: /* 627 */  "b%f %y,%x,%r",
        !           234: /* 628 */  "b %r",
        !           235: /* 629 */  "j %y",
        !           236: /* 630 */  "c.%f.%t %y,%x; bc1f %r",
        !           237: /* 631 */  "c.%f.%t %y,%x; bc1t %r",
        !           238: /* 632 */  "l.%t $f%r,%y",
        !           239: /* 633 */  "li.%t $f%r,%y",
        !           240: /* 634 */  "mfc1.d $%r,%y",
        !           241: /* 635 */  "mov.%t $f%r,%y",
        !           242: /* 636 */  "mtc1 %y,$f%r; %f.%t $f%r,$f%r",
        !           243: /* 637 */  "s%t $%k,%y",
        !           244: /* 638 */  "s.%t $f%k,%y",
        !           245: /* 639 */  "%y:",
        !           246: };
        !           247: 
        !           248: static char *asmstr0[] = {
        !           249:        "(DUMMY)",
        !           250:        "$%n",
        !           251:        "$%c",
        !           252:        "$f%n",
        !           253:        "$f%c",
        !           254:        "%c",
        !           255:        "%c($%n)",
        !           256:        "%c($sp)",
        !           257:        "($%n)",
        !           258: };
        !           259: 
        !           260: static char *asmstr2[] = {
        !           261:        "(DUMMY)",
        !           262:        "and",
        !           263:        "cvt.d",
        !           264:        "cvt.s",
        !           265:        "eq",
        !           266:        "mul",
        !           267:        "ne",
        !           268:        "not",
        !           269:        "or",
        !           270:        "sll",
        !           271:        "sra",
        !           272:        "srl",
        !           273:        "trunc.w",
        !           274:        "xor",
        !           275:        "add",
        !           276:        "div",
        !           277:        "ge",
        !           278:        "gt",
        !           279:        "le",
        !           280:        "lt",
        !           281:        "neg",
        !           282:        "rem",
        !           283:        "sub",
        !           284:        "addu",
        !           285:        "divu",
        !           286:        "geu",
        !           287:        "gtu",
        !           288:        "leu",
        !           289:        "ltu",
        !           290:        "negu",
        !           291:        "remu",
        !           292:        "subu",
        !           293: };
        !           294: 
        !           295: static char *asmstr3[] = {
        !           296:        "(DUMMY)",
        !           297:        "s",
        !           298:        "d",
        !           299:        "b",
        !           300:        "h",
        !           301:        "w",
        !           302: };
        !           303: 
        !           304: static struct symbol sym[] = {
        !           305: {{"(DUMMY)"}},
        !           306: {{"0"}},
        !           307: {{"4"}},
        !           308: {{"5"}},
        !           309: {{"6"}},
        !           310: {{"7"}},
        !           311: {{"8"}},
        !           312: {{"12"}},
        !           313: {{"14"}},
        !           314: {{"16"}},
        !           315: {{"24"}},
        !           316: {{"255"}},
        !           317: {{"65535"}},
        !           318: };
        !           319: 
        !           320: dclproto(static void rewrite,(Node));
        !           321: 
        !           322: dclproto(static void emit,(Node));
        !           323: 
        !           324: static void initgen() {
        !           325:        opcodes = shortopcodes-608;
        !           326:        IR->x.rewrite = rewrite;
        !           327:        IR->emit = emit;
        !           328:        asmstr[0] = asmstr0;
        !           329:        asmstr[1] = asmstr0;
        !           330:        asmstr[2] = asmstr2;
        !           331:        asmstr[3] = asmstr3;
        !           332:        sym[1].x.name = string("0");
        !           333:        sym[2].x.name = string("4");
        !           334:        sym[3].x.name = string("5");
        !           335:        sym[4].x.name = string("6");
        !           336:        sym[5].x.name = string("7");
        !           337:        sym[6].x.name = string("8");
        !           338:        sym[7].x.name = string("12");
        !           339:        sym[8].x.name = string("14");
        !           340:        sym[9].x.name = string("16");
        !           341:        sym[10].x.name = string("24");
        !           342:        sym[11].x.name = string("255");
        !           343:        sym[12].x.name = string("65535");
        !           344: }
        !           345: 
        !           346: dclproto(static char *emit0,(char *, Node, int));
        !           347: static char *emit0(rbp, a, n)
        !           348: register char *rbp;
        !           349: register Node a;
        !           350: register int n;
        !           351: {
        !           352:        register char *cp;
        !           353: 
        !           354:        assert(a->x.ints[n]);
        !           355:        switch (a->x.ints[n]) {
        !           356:        case 0:   /* (DUMMY) */
        !           357:                *rbp++ = '(';
        !           358:                *rbp++ = 'D';
        !           359:                *rbp++ = 'U';
        !           360:                *rbp++ = 'M';
        !           361:                *rbp++ = 'M';
        !           362:                *rbp++ = 'Y';
        !           363:                *rbp++ = ')';
        !           364:                return rbp;
        !           365:        case 1:   /* $%n */
        !           366:                *rbp++ = '$';
        !           367:                assert(a->kids[n+0]);
        !           368:                assert(a->kids[n+0]->x.registered);
        !           369:                assert(a->kids[n+0]->syms[RX]);
        !           370:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
        !           371:                return rbp;
        !           372:        case 2:   /* $%c */
        !           373:                *rbp++ = '$';
        !           374:                assert(a->syms[n+0]);
        !           375:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
        !           376:                return rbp;
        !           377:        case 3:   /* $f%n */
        !           378:                *rbp++ = '$';
        !           379:                *rbp++ = 'f';
        !           380:                assert(a->kids[n+0]);
        !           381:                assert(a->kids[n+0]->x.registered);
        !           382:                assert(a->kids[n+0]->syms[RX]);
        !           383:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
        !           384:                return rbp;
        !           385:        case 4:   /* $f%c */
        !           386:                *rbp++ = '$';
        !           387:                *rbp++ = 'f';
        !           388:                assert(a->syms[n+0]);
        !           389:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
        !           390:                return rbp;
        !           391:        case 5:   /* %c */
        !           392:                assert(a->syms[n+0]);
        !           393:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
        !           394:                return rbp;
        !           395:        case 6:   /* %c($%n) */
        !           396:                assert(a->syms[n+0]);
        !           397:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
        !           398:                *rbp++ = '(';
        !           399:                *rbp++ = '$';
        !           400:                assert(a->kids[n+0]);
        !           401:                assert(a->kids[n+0]->x.registered);
        !           402:                assert(a->kids[n+0]->syms[RX]);
        !           403:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
        !           404:                *rbp++ = ')';
        !           405:                return rbp;
        !           406:        case 7:   /* %c($sp) */
        !           407:                assert(a->syms[n+0]);
        !           408:                for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
        !           409:                *rbp++ = '(';
        !           410:                *rbp++ = '$';
        !           411:                *rbp++ = 's';
        !           412:                *rbp++ = 'p';
        !           413:                *rbp++ = ')';
        !           414:                return rbp;
        !           415:        case 8:   /* ($%n) */
        !           416:                *rbp++ = '(';
        !           417:                *rbp++ = '$';
        !           418:                assert(a->kids[n+0]);
        !           419:                assert(a->kids[n+0]->x.registered);
        !           420:                assert(a->kids[n+0]->syms[RX]);
        !           421:                for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
        !           422:                *rbp++ = ')';
        !           423:                return rbp;
        !           424:        }
        !           425:        return rbp;
        !           426: }
        !           427: 
        !           428: static void emit(a)
        !           429: register Node a;
        !           430: {
        !           431:        register char *cp, *rbp;
        !           432: 
        !           433:        for (; a; a = a->x.next) {
        !           434:                switch (a->op) {
        !           435:                case 608: L608:   /* jal %y  # int */
        !           436:                        rbp = bp;
        !           437:                        *rbp++ = 'j';
        !           438:                        *rbp++ = 'a';
        !           439:                        *rbp++ = 'l';
        !           440:                        *rbp++ = ' ';
        !           441:                        rbp = emit0(rbp, a, 0);
        !           442:                        *rbp++ = ' ';
        !           443:                        *rbp++ = ' ';
        !           444:                        *rbp++ = '#';
        !           445:                        *rbp++ = ' ';
        !           446:                        *rbp++ = 'i';
        !           447:                        *rbp++ = 'n';
        !           448:                        *rbp++ = 't';
        !           449:                        bp = rbp;
        !           450:                        outs("\n");
        !           451:                        break;
        !           452:                case 609: L609:   /* jal %y  # real */
        !           453:                        rbp = bp;
        !           454:                        *rbp++ = 'j';
        !           455:                        *rbp++ = 'a';
        !           456:                        *rbp++ = 'l';
        !           457:                        *rbp++ = ' ';
        !           458:                        rbp = emit0(rbp, a, 0);
        !           459:                        *rbp++ = ' ';
        !           460:                        *rbp++ = ' ';
        !           461:                        *rbp++ = '#';
        !           462:                        *rbp++ = ' ';
        !           463:                        *rbp++ = 'r';
        !           464:                        *rbp++ = 'e';
        !           465:                        *rbp++ = 'a';
        !           466:                        *rbp++ = 'l';
        !           467:                        bp = rbp;
        !           468:                        outs("\n");
        !           469:                        break;
        !           470:                case 610: L610:   /* # asgnb */
        !           471:                        (*IR->x.emitspecial)(a);
        !           472:                        break;
        !           473:                case 611: L611:   /* # argb */
        !           474:                        (*IR->x.emitspecial)(a);
        !           475:                        break;
        !           476:                case 612: L612:   /* la $%r,%y */
        !           477:                        rbp = bp;
        !           478:                        *rbp++ = 'l';
        !           479:                        *rbp++ = 'a';
        !           480:                        *rbp++ = ' ';
        !           481:                        *rbp++ = '$';
        !           482:                assert(a->syms[2]);
        !           483:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           484:                        *rbp++ = ',';
        !           485:                        rbp = emit0(rbp, a, 0);
        !           486:                        bp = rbp;
        !           487:                        outs("\n");
        !           488:                        break;
        !           489:                case 613: L613:   /* mfc1 $%r,%y */
        !           490:                        rbp = bp;
        !           491:                        *rbp++ = 'm';
        !           492:                        *rbp++ = 'f';
        !           493:                        *rbp++ = 'c';
        !           494:                        *rbp++ = '1';
        !           495:                        *rbp++ = ' ';
        !           496:                        *rbp++ = '$';
        !           497:                assert(a->syms[2]);
        !           498:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           499:                        *rbp++ = ',';
        !           500:                        rbp = emit0(rbp, a, 0);
        !           501:                        bp = rbp;
        !           502:                        outs("\n");
        !           503:                        break;
        !           504:                case 614: L614:   /* move $%r,%y */
        !           505:                        rbp = bp;
        !           506:                        *rbp++ = 'm';
        !           507:                        *rbp++ = 'o';
        !           508:                        *rbp++ = 'v';
        !           509:                        *rbp++ = 'e';
        !           510:                        *rbp++ = ' ';
        !           511:                        *rbp++ = '$';
        !           512:                assert(a->syms[2]);
        !           513:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           514:                        *rbp++ = ',';
        !           515:                        rbp = emit0(rbp, a, 0);
        !           516:                        bp = rbp;
        !           517:                        outs("\n");
        !           518:                        break;
        !           519:                case 615: L615:   /* %f $%r,%y */
        !           520:                        rbp = bp;
        !           521:                        assert(a->x.ints[2]);
        !           522:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           523:                        *rbp++ = ' ';
        !           524:                        *rbp++ = '$';
        !           525:                assert(a->syms[2]);
        !           526:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           527:                        *rbp++ = ',';
        !           528:                        rbp = emit0(rbp, a, 0);
        !           529:                        bp = rbp;
        !           530:                        outs("\n");
        !           531:                        break;
        !           532:                case 616: L616:   /* li $%r,%y */
        !           533:                        rbp = bp;
        !           534:                        *rbp++ = 'l';
        !           535:                        *rbp++ = 'i';
        !           536:                        *rbp++ = ' ';
        !           537:                        *rbp++ = '$';
        !           538:                assert(a->syms[2]);
        !           539:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           540:                        *rbp++ = ',';
        !           541:                        rbp = emit0(rbp, a, 0);
        !           542:                        bp = rbp;
        !           543:                        outs("\n");
        !           544:                        break;
        !           545:                case 617: L617:   /* l%t $%r,%y */
        !           546:                        rbp = bp;
        !           547:                        *rbp++ = 'l';
        !           548:                        assert(a->x.ints[3]);
        !           549:                        cp = asmstr3[a->x.ints[3]];
        !           550:                        *rbp++ = cp[0];
        !           551:                        *rbp++ = ' ';
        !           552:                        *rbp++ = '$';
        !           553:                assert(a->syms[2]);
        !           554:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           555:                        *rbp++ = ',';
        !           556:                        rbp = emit0(rbp, a, 0);
        !           557:                        bp = rbp;
        !           558:                        outs("\n");
        !           559:                        break;
        !           560:                case 618: L618:   /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
        !           561:                        rbp = bp;
        !           562:                        assert(a->x.ints[2]);
        !           563:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           564:                        *rbp++ = '.';
        !           565:                        assert(a->x.ints[3]);
        !           566:                        cp = asmstr3[a->x.ints[3]];
        !           567:                        *rbp++ = cp[0];
        !           568:                        *rbp++ = ' ';
        !           569:                        *rbp++ = '$';
        !           570:                        *rbp++ = 'f';
        !           571:                        *rbp++ = '2';
        !           572:                        *rbp++ = ',';
        !           573:                        rbp = emit0(rbp, a, 0);
        !           574:                        *rbp++ = ',';
        !           575:                        *rbp++ = '$';
        !           576:                assert(a->syms[2]);
        !           577:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           578:                        bp = rbp; outs(";"); rbp = bp;
        !           579:                        *rbp++ = ' ';
        !           580:                        *rbp++ = 'm';
        !           581:                        *rbp++ = 'f';
        !           582:                        *rbp++ = 'c';
        !           583:                        *rbp++ = '1';
        !           584:                        *rbp++ = ' ';
        !           585:                        *rbp++ = '$';
        !           586:                assert(a->syms[2]);
        !           587:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           588:                        *rbp++ = ',';
        !           589:                        *rbp++ = '$';
        !           590:                        *rbp++ = 'f';
        !           591:                        *rbp++ = '2';
        !           592:                        bp = rbp;
        !           593:                        outs("\n");
        !           594:                        break;
        !           595:                case 619: L619:   /* %f $%r,%y,%x */
        !           596:                        rbp = bp;
        !           597:                        assert(a->x.ints[2]);
        !           598:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           599:                        *rbp++ = ' ';
        !           600:                        *rbp++ = '$';
        !           601:                assert(a->syms[2]);
        !           602:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           603:                        *rbp++ = ',';
        !           604:                        rbp = emit0(rbp, a, 0);
        !           605:                        *rbp++ = ',';
        !           606:                        rbp = emit0(rbp, a, 1);
        !           607:                        bp = rbp;
        !           608:                        outs("\n");
        !           609:                        break;
        !           610:                case 620: L620:   /* l%tu $%r,%y */
        !           611:                        rbp = bp;
        !           612:                        *rbp++ = 'l';
        !           613:                        assert(a->x.ints[3]);
        !           614:                        cp = asmstr3[a->x.ints[3]];
        !           615:                        *rbp++ = cp[0];
        !           616:                        *rbp++ = 'u';
        !           617:                        *rbp++ = ' ';
        !           618:                        *rbp++ = '$';
        !           619:                assert(a->syms[2]);
        !           620:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           621:                        *rbp++ = ',';
        !           622:                        rbp = emit0(rbp, a, 0);
        !           623:                        bp = rbp;
        !           624:                        outs("\n");
        !           625:                        break;
        !           626:                case 621: L621:   /* # nop */
        !           627:                        (*IR->x.emitspecial)(a);
        !           628:                        break;
        !           629:                case 622: L622:   /* # ret */
        !           630:                        (*IR->x.emitspecial)(a);
        !           631:                        break;
        !           632:                case 623: L623:   /* %f.%t $f%r,%y */
        !           633:                        rbp = bp;
        !           634:                        assert(a->x.ints[2]);
        !           635:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           636:                        *rbp++ = '.';
        !           637:                        assert(a->x.ints[3]);
        !           638:                        cp = asmstr3[a->x.ints[3]];
        !           639:                        *rbp++ = cp[0];
        !           640:                        *rbp++ = ' ';
        !           641:                        *rbp++ = '$';
        !           642:                        *rbp++ = 'f';
        !           643:                assert(a->syms[2]);
        !           644:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           645:                        *rbp++ = ',';
        !           646:                        rbp = emit0(rbp, a, 0);
        !           647:                        bp = rbp;
        !           648:                        outs("\n");
        !           649:                        break;
        !           650:                case 624: L624:   /* %f.%t $f%r,%y,%x */
        !           651:                        rbp = bp;
        !           652:                        assert(a->x.ints[2]);
        !           653:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           654:                        *rbp++ = '.';
        !           655:                        assert(a->x.ints[3]);
        !           656:                        cp = asmstr3[a->x.ints[3]];
        !           657:                        *rbp++ = cp[0];
        !           658:                        *rbp++ = ' ';
        !           659:                        *rbp++ = '$';
        !           660:                        *rbp++ = 'f';
        !           661:                assert(a->syms[2]);
        !           662:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           663:                        *rbp++ = ',';
        !           664:                        rbp = emit0(rbp, a, 0);
        !           665:                        *rbp++ = ',';
        !           666:                        rbp = emit0(rbp, a, 1);
        !           667:                        bp = rbp;
        !           668:                        outs("\n");
        !           669:                        break;
        !           670:                case 625: L625:   /* sll $%r,%y,%x; %f $%r,$%r,%x */
        !           671:                        rbp = bp;
        !           672:                        *rbp++ = 's';
        !           673:                        *rbp++ = 'l';
        !           674:                        *rbp++ = 'l';
        !           675:                        *rbp++ = ' ';
        !           676:                        *rbp++ = '$';
        !           677:                assert(a->syms[2]);
        !           678:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           679:                        *rbp++ = ',';
        !           680:                        rbp = emit0(rbp, a, 0);
        !           681:                        *rbp++ = ',';
        !           682:                        rbp = emit0(rbp, a, 1);
        !           683:                        bp = rbp; outs(";"); rbp = bp;
        !           684:                        *rbp++ = ' ';
        !           685:                        assert(a->x.ints[2]);
        !           686:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           687:                        *rbp++ = ' ';
        !           688:                        *rbp++ = '$';
        !           689:                assert(a->syms[2]);
        !           690:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           691:                        *rbp++ = ',';
        !           692:                        *rbp++ = '$';
        !           693:                assert(a->syms[2]);
        !           694:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           695:                        *rbp++ = ',';
        !           696:                        rbp = emit0(rbp, a, 1);
        !           697:                        bp = rbp;
        !           698:                        outs("\n");
        !           699:                        break;
        !           700:                case 626: L626:   /* # label */
        !           701:                        (*IR->x.emitspecial)(a);
        !           702:                        break;
        !           703:                case 627: L627:   /* b%f %y,%x,%r */
        !           704:                        rbp = bp;
        !           705:                        *rbp++ = 'b';
        !           706:                        assert(a->x.ints[2]);
        !           707:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           708:                        *rbp++ = ' ';
        !           709:                        rbp = emit0(rbp, a, 0);
        !           710:                        *rbp++ = ',';
        !           711:                        rbp = emit0(rbp, a, 1);
        !           712:                        *rbp++ = ',';
        !           713:                assert(a->syms[2]);
        !           714:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           715:                        bp = rbp;
        !           716:                        outs("\n");
        !           717:                        break;
        !           718:                case 628: L628:   /* b %r */
        !           719:                        rbp = bp;
        !           720:                        *rbp++ = 'b';
        !           721:                        *rbp++ = ' ';
        !           722:                assert(a->syms[2]);
        !           723:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           724:                        bp = rbp;
        !           725:                        outs("\n");
        !           726:                        break;
        !           727:                case 629: L629:   /* j %y */
        !           728:                        rbp = bp;
        !           729:                        *rbp++ = 'j';
        !           730:                        *rbp++ = ' ';
        !           731:                        rbp = emit0(rbp, a, 0);
        !           732:                        bp = rbp;
        !           733:                        outs("\n");
        !           734:                        break;
        !           735:                case 630: L630:   /* c.%f.%t %y,%x; bc1f %r */
        !           736:                        rbp = bp;
        !           737:                        *rbp++ = 'c';
        !           738:                        *rbp++ = '.';
        !           739:                        assert(a->x.ints[2]);
        !           740:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           741:                        *rbp++ = '.';
        !           742:                        assert(a->x.ints[3]);
        !           743:                        cp = asmstr3[a->x.ints[3]];
        !           744:                        *rbp++ = cp[0];
        !           745:                        *rbp++ = ' ';
        !           746:                        rbp = emit0(rbp, a, 0);
        !           747:                        *rbp++ = ',';
        !           748:                        rbp = emit0(rbp, a, 1);
        !           749:                        bp = rbp; outs(";"); rbp = bp;
        !           750:                        *rbp++ = ' ';
        !           751:                        *rbp++ = 'b';
        !           752:                        *rbp++ = 'c';
        !           753:                        *rbp++ = '1';
        !           754:                        *rbp++ = 'f';
        !           755:                        *rbp++ = ' ';
        !           756:                assert(a->syms[2]);
        !           757:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           758:                        bp = rbp;
        !           759:                        outs("\n");
        !           760:                        break;
        !           761:                case 631: L631:   /* c.%f.%t %y,%x; bc1t %r */
        !           762:                        rbp = bp;
        !           763:                        *rbp++ = 'c';
        !           764:                        *rbp++ = '.';
        !           765:                        assert(a->x.ints[2]);
        !           766:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           767:                        *rbp++ = '.';
        !           768:                        assert(a->x.ints[3]);
        !           769:                        cp = asmstr3[a->x.ints[3]];
        !           770:                        *rbp++ = cp[0];
        !           771:                        *rbp++ = ' ';
        !           772:                        rbp = emit0(rbp, a, 0);
        !           773:                        *rbp++ = ',';
        !           774:                        rbp = emit0(rbp, a, 1);
        !           775:                        bp = rbp; outs(";"); rbp = bp;
        !           776:                        *rbp++ = ' ';
        !           777:                        *rbp++ = 'b';
        !           778:                        *rbp++ = 'c';
        !           779:                        *rbp++ = '1';
        !           780:                        *rbp++ = 't';
        !           781:                        *rbp++ = ' ';
        !           782:                assert(a->syms[2]);
        !           783:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           784:                        bp = rbp;
        !           785:                        outs("\n");
        !           786:                        break;
        !           787:                case 632: L632:   /* l.%t $f%r,%y */
        !           788:                        rbp = bp;
        !           789:                        *rbp++ = 'l';
        !           790:                        *rbp++ = '.';
        !           791:                        assert(a->x.ints[3]);
        !           792:                        cp = asmstr3[a->x.ints[3]];
        !           793:                        *rbp++ = cp[0];
        !           794:                        *rbp++ = ' ';
        !           795:                        *rbp++ = '$';
        !           796:                        *rbp++ = 'f';
        !           797:                assert(a->syms[2]);
        !           798:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           799:                        *rbp++ = ',';
        !           800:                        rbp = emit0(rbp, a, 0);
        !           801:                        bp = rbp;
        !           802:                        outs("\n");
        !           803:                        break;
        !           804:                case 633: L633:   /* li.%t $f%r,%y */
        !           805:                        rbp = bp;
        !           806:                        *rbp++ = 'l';
        !           807:                        *rbp++ = 'i';
        !           808:                        *rbp++ = '.';
        !           809:                        assert(a->x.ints[3]);
        !           810:                        cp = asmstr3[a->x.ints[3]];
        !           811:                        *rbp++ = cp[0];
        !           812:                        *rbp++ = ' ';
        !           813:                        *rbp++ = '$';
        !           814:                        *rbp++ = 'f';
        !           815:                assert(a->syms[2]);
        !           816:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           817:                        *rbp++ = ',';
        !           818:                        rbp = emit0(rbp, a, 0);
        !           819:                        bp = rbp;
        !           820:                        outs("\n");
        !           821:                        break;
        !           822:                case 634: L634:   /* mfc1.d $%r,%y */
        !           823:                        rbp = bp;
        !           824:                        *rbp++ = 'm';
        !           825:                        *rbp++ = 'f';
        !           826:                        *rbp++ = 'c';
        !           827:                        *rbp++ = '1';
        !           828:                        *rbp++ = '.';
        !           829:                        *rbp++ = 'd';
        !           830:                        *rbp++ = ' ';
        !           831:                        *rbp++ = '$';
        !           832:                assert(a->syms[2]);
        !           833:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           834:                        *rbp++ = ',';
        !           835:                        rbp = emit0(rbp, a, 0);
        !           836:                        bp = rbp;
        !           837:                        outs("\n");
        !           838:                        break;
        !           839:                case 635: L635:   /* mov.%t $f%r,%y */
        !           840:                        rbp = bp;
        !           841:                        *rbp++ = 'm';
        !           842:                        *rbp++ = 'o';
        !           843:                        *rbp++ = 'v';
        !           844:                        *rbp++ = '.';
        !           845:                        assert(a->x.ints[3]);
        !           846:                        cp = asmstr3[a->x.ints[3]];
        !           847:                        *rbp++ = cp[0];
        !           848:                        *rbp++ = ' ';
        !           849:                        *rbp++ = '$';
        !           850:                        *rbp++ = 'f';
        !           851:                assert(a->syms[2]);
        !           852:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           853:                        *rbp++ = ',';
        !           854:                        rbp = emit0(rbp, a, 0);
        !           855:                        bp = rbp;
        !           856:                        outs("\n");
        !           857:                        break;
        !           858:                case 636: L636:   /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !           859:                        rbp = bp;
        !           860:                        *rbp++ = 'm';
        !           861:                        *rbp++ = 't';
        !           862:                        *rbp++ = 'c';
        !           863:                        *rbp++ = '1';
        !           864:                        *rbp++ = ' ';
        !           865:                        rbp = emit0(rbp, a, 0);
        !           866:                        *rbp++ = ',';
        !           867:                        *rbp++ = '$';
        !           868:                        *rbp++ = 'f';
        !           869:                assert(a->syms[2]);
        !           870:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           871:                        bp = rbp; outs(";"); rbp = bp;
        !           872:                        *rbp++ = ' ';
        !           873:                        assert(a->x.ints[2]);
        !           874:                        for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
        !           875:                        *rbp++ = '.';
        !           876:                        assert(a->x.ints[3]);
        !           877:                        cp = asmstr3[a->x.ints[3]];
        !           878:                        *rbp++ = cp[0];
        !           879:                        *rbp++ = ' ';
        !           880:                        *rbp++ = '$';
        !           881:                        *rbp++ = 'f';
        !           882:                assert(a->syms[2]);
        !           883:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           884:                        *rbp++ = ',';
        !           885:                        *rbp++ = '$';
        !           886:                        *rbp++ = 'f';
        !           887:                assert(a->syms[2]);
        !           888:                for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
        !           889:                        bp = rbp;
        !           890:                        outs("\n");
        !           891:                        break;
        !           892:                case 637: L637:   /* s%t $%k,%y */
        !           893:                        rbp = bp;
        !           894:                        *rbp++ = 's';
        !           895:                        assert(a->x.ints[3]);
        !           896:                        cp = asmstr3[a->x.ints[3]];
        !           897:                        *rbp++ = cp[0];
        !           898:                        *rbp++ = ' ';
        !           899:                        *rbp++ = '$';
        !           900:                        assert(a->kids[2]);
        !           901:                        assert(a->kids[2]->x.registered);
        !           902:                assert(a->kids[2]->syms[RX]);
        !           903:                for (cp = a->kids[2]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
        !           904:                        *rbp++ = ',';
        !           905:                        rbp = emit0(rbp, a, 0);
        !           906:                        bp = rbp;
        !           907:                        outs("\n");
        !           908:                        break;
        !           909:                case 638: L638:   /* s.%t $f%k,%y */
        !           910:                        rbp = bp;
        !           911:                        *rbp++ = 's';
        !           912:                        *rbp++ = '.';
        !           913:                        assert(a->x.ints[3]);
        !           914:                        cp = asmstr3[a->x.ints[3]];
        !           915:                        *rbp++ = cp[0];
        !           916:                        *rbp++ = ' ';
        !           917:                        *rbp++ = '$';
        !           918:                        *rbp++ = 'f';
        !           919:                        assert(a->kids[2]);
        !           920:                        assert(a->kids[2]->x.registered);
        !           921:                assert(a->kids[2]->syms[RX]);
        !           922:                for (cp = a->kids[2]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
        !           923:                        *rbp++ = ',';
        !           924:                        rbp = emit0(rbp, a, 0);
        !           925:                        bp = rbp;
        !           926:                        outs("\n");
        !           927:                        break;
        !           928:                case 639: L639:   /* %y: */
        !           929:                        rbp = bp;
        !           930:                        rbp = emit0(rbp, a, 0);
        !           931:                        *rbp++ = ':';
        !           932:                        bp = rbp;
        !           933:                        outs("\n");
        !           934:                        break;
        !           935:                }
        !           936:        }
        !           937: }
        !           938: 
        !           939: static void final(a)
        !           940: register Node a;
        !           941: {
        !           942:        register int s;
        !           943:        switch (a->op) {
        !           944:        case 608: L608:   /* jal %y  # int */
        !           945:                dumptree(a, 608);
        !           946:                spill(0x000f0ff3, FREG, a);  spill(0x0300ff00, IREG, a);  
        !           947:                a->op = 608;
        !           948:                break;
        !           949:        case 609: L609:   /* jal %y  # real */
        !           950:                dumptree(a, 609);
        !           951:                spill(0x0300ff04, IREG, a);  spill(0x000f0ff0, FREG, a);  
        !           952:                a->op = 609;
        !           953:                break;
        !           954:        case 610: L610:   /* # asgnb */
        !           955:                dumptree(a, 610);
        !           956:                spill(0x10c, IREG, a);  
        !           957:                a->op = 610;
        !           958:                return;
        !           959:        case 611: L611:   /* # argb */
        !           960:                dumptree(a, 611);
        !           961:                spill(0x10c, IREG, a);  
        !           962:                a->op = 611;
        !           963:                return;
        !           964:        case 612: L612:   /* la $%r,%y */
        !           965:                dumptree(a, 612);
        !           966:                a->op = 612;
        !           967:                break;
        !           968:        case 613: L613:   /* mfc1 $%r,%y */
        !           969:                dumptree(a, 613);
        !           970:                a->op = 613;
        !           971:                break;
        !           972:        case 614: L614:   /* move $%r,%y */
        !           973:                dumptree(a, 614);
        !           974:                if (
        !           975:                a->x.ints[0] == 1  /* $%n */
        !           976:                && a->syms[2] == a->kids[0]->syms[2]
        !           977:                ) {
        !           978:                        goto L621;   /* # nop */
        !           979:                }
        !           980:                a->op = 614;
        !           981:                break;
        !           982:        case 615: L615:   /* %f $%r,%y */
        !           983:                dumptree(a, 615);
        !           984:                a->op = 615;
        !           985:                break;
        !           986:        case 616: L616:   /* li $%r,%y */
        !           987:                dumptree(a, 616);
        !           988:                a->op = 616;
        !           989:                break;
        !           990:        case 617: L617:   /* l%t $%r,%y */
        !           991:                dumptree(a, 617);
        !           992:                a->op = 617;
        !           993:                break;
        !           994:        case 618: L618:   /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
        !           995:                dumptree(a, 618);
        !           996:                a->op = 618;
        !           997:                break;
        !           998:        case 619: L619:   /* %f $%r,%y,%x */
        !           999:                dumptree(a, 619);
        !          1000:                if (
        !          1001:                "\1\0\0\0\0\0\0\0\0\1\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[2]]  /* <TMP1168> */
        !          1002:                && a->x.ints[1] == 5  /* %c */
        !          1003:                && lop(a,1,5)
        !          1004:                ) {
        !          1005:                        goto L619;   /* %f $%r,%y,%x */
        !          1006:                }
        !          1007:                a->op = 619;
        !          1008:                break;
        !          1009:        case 620: L620:   /* l%tu $%r,%y */
        !          1010:                dumptree(a, 620);
        !          1011:                a->op = 620;
        !          1012:                break;
        !          1013:        case 621: L621:   /* # nop */
        !          1014:                dumptree(a, 621);
        !          1015:                a->op = 621;
        !          1016:                return;
        !          1017:        case 622: L622:   /* # ret */
        !          1018:                dumptree(a, 622);
        !          1019:                a->op = 622;
        !          1020:                return;
        !          1021:        case 623: L623:   /* %f.%t $f%r,%y */
        !          1022:                dumptree(a, 623);
        !          1023:                a->op = 623;
        !          1024:                break;
        !          1025:        case 624: L624:   /* %f.%t $f%r,%y,%x */
        !          1026:                dumptree(a, 624);
        !          1027:                a->op = 624;
        !          1028:                break;
        !          1029:        case 625: L625:   /* sll $%r,%y,%x; %f $%r,$%r,%x */
        !          1030:                dumptree(a, 625);
        !          1031:                a->op = 625;
        !          1032:                break;
        !          1033:        case 626: L626:   /* # label */
        !          1034:                dumptree(a, 626);
        !          1035:                a->op = 626;
        !          1036:                return;
        !          1037:        case 627: L627:   /* b%f %y,%x,%r */
        !          1038:                dumptree(a, 627);
        !          1039:                a->op = 627;
        !          1040:                break;
        !          1041:        case 628: L628:   /* b %r */
        !          1042:                dumptree(a, 628);
        !          1043:                a->op = 628;
        !          1044:                break;
        !          1045:        case 629: L629:   /* j %y */
        !          1046:                dumptree(a, 629);
        !          1047:                a->op = 629;
        !          1048:                break;
        !          1049:        case 630: L630:   /* c.%f.%t %y,%x; bc1f %r */
        !          1050:                dumptree(a, 630);
        !          1051:                a->op = 630;
        !          1052:                break;
        !          1053:        case 631: L631:   /* c.%f.%t %y,%x; bc1t %r */
        !          1054:                dumptree(a, 631);
        !          1055:                a->op = 631;
        !          1056:                break;
        !          1057:        case 632: L632:   /* l.%t $f%r,%y */
        !          1058:                dumptree(a, 632);
        !          1059:                a->op = 632;
        !          1060:                break;
        !          1061:        case 633: L633:   /* li.%t $f%r,%y */
        !          1062:                dumptree(a, 633);
        !          1063:                a->op = 633;
        !          1064:                break;
        !          1065:        case 634: L634:   /* mfc1.d $%r,%y */
        !          1066:                dumptree(a, 634);
        !          1067:                a->op = 634;
        !          1068:                break;
        !          1069:        case 635: L635:   /* mov.%t $f%r,%y */
        !          1070:                dumptree(a, 635);
        !          1071:                a->op = 635;
        !          1072:                break;
        !          1073:        case 636: L636:   /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !          1074:                dumptree(a, 636);
        !          1075:                a->op = 636;
        !          1076:                break;
        !          1077:        case 637: L637:   /* s%t $%k,%y */
        !          1078:                dumptree(a, 637);
        !          1079:                a->op = 637;
        !          1080:                break;
        !          1081:        case 638: L638:   /* s.%t $f%k,%y */
        !          1082:                dumptree(a, 638);
        !          1083:                a->op = 638;
        !          1084:                break;
        !          1085:        case 639: L639:   /* %y: */
        !          1086:                dumptree(a, 639);
        !          1087:                a->op = 639;
        !          1088:                break;
        !          1089:        }
        !          1090: }
        !          1091: 
        !          1092: static void rewrite(a)
        !          1093: register Node a;
        !          1094: {
        !          1095:        register Node b, c;
        !          1096:        register int s;
        !          1097:        assert(a);
        !          1098:        switch (a->op) {
        !          1099:        case 17: L17:   /* CNSTF */
        !          1100:                dumptree(a, a->op);
        !          1101:                setreg(a, rmap[F]);
        !          1102:                a->x.ints[0] = 5;  /* %c */
        !          1103:                a->x.ints[3] = 1;  /* s */
        !          1104:                goto L633;   /* li.%t $f%r,%y */
        !          1105:        case 18: L18:   /* CNSTD */
        !          1106:                dumptree(a, a->op);
        !          1107:                setreg(a, rmap[D]);
        !          1108:                a->x.ints[0] = 5;  /* %c */
        !          1109:                a->x.ints[3] = 2;  /* d */
        !          1110:                goto L633;   /* li.%t $f%r,%y */
        !          1111:        case 19: L19:   /* CNSTC */
        !          1112:                dumptree(a, a->op);
        !          1113:                setreg(a, rmap[C]);
        !          1114:                a->x.ints[0] = 5;  /* %c */
        !          1115:                goto L616;   /* li $%r,%y */
        !          1116:        case 20: L20:   /* CNSTS */
        !          1117:                dumptree(a, a->op);
        !          1118:                setreg(a, rmap[S]);
        !          1119:                a->x.ints[0] = 5;  /* %c */
        !          1120:                goto L616;   /* li $%r,%y */
        !          1121:        case 21: L21:   /* CNSTI */
        !          1122:                dumptree(a, a->op);
        !          1123:                setreg(a, rmap[I]);
        !          1124:                a->x.ints[0] = 5;  /* %c */
        !          1125:                goto L616;   /* li $%r,%y */
        !          1126:        case 22: L22:   /* CNSTU */
        !          1127:                dumptree(a, a->op);
        !          1128:                setreg(a, rmap[U]);
        !          1129:                a->x.ints[0] = 5;  /* %c */
        !          1130:                goto L616;   /* li $%r,%y */
        !          1131:        case 23: L23:   /* CNSTP */
        !          1132:                dumptree(a, a->op);
        !          1133:                setreg(a, rmap[P]);
        !          1134:                a->x.ints[0] = 5;  /* %c */
        !          1135:                goto L616;   /* li $%r,%y */
        !          1136:        case 33: L33:   /* ARGF */
        !          1137:                dumptree(a, a->op);
        !          1138:                rewrite(a->kids[0]);
        !          1139:                a->x.ints[0] = 7;  /* %c($sp) */
        !          1140:                a->kids[2] = a->kids[0];
        !          1141:                a->kids[0] = 0;
        !          1142:                a->x.ints[3] = 1;  /* s */
        !          1143:                goto L638;   /* s.%t $f%k,%y */
        !          1144:        case 34: L34:   /* ARGD */
        !          1145:                dumptree(a, a->op);
        !          1146:                rewrite(a->kids[0]);
        !          1147:                a->x.ints[0] = 7;  /* %c($sp) */
        !          1148:                a->kids[2] = a->kids[0];
        !          1149:                a->kids[0] = 0;
        !          1150:                a->x.ints[3] = 2;  /* d */
        !          1151:                goto L638;   /* s.%t $f%k,%y */
        !          1152:        case 37: L37:   /* ARGI */
        !          1153:                dumptree(a, a->op);
        !          1154:                rewrite(a->kids[0]);
        !          1155:                a->x.ints[0] = 7;  /* %c($sp) */
        !          1156:                a->kids[2] = a->kids[0];
        !          1157:                a->kids[0] = 0;
        !          1158:                a->x.ints[3] = 5;  /* w */
        !          1159:                goto L637;   /* s%t $%k,%y */
        !          1160:        case 39: L39:   /* ARGP */
        !          1161:                dumptree(a, a->op);
        !          1162:                rewrite(a->kids[0]);
        !          1163:                a->x.ints[0] = 7;  /* %c($sp) */
        !          1164:                a->kids[2] = a->kids[0];
        !          1165:                a->kids[0] = 0;
        !          1166:                a->x.ints[3] = 5;  /* w */
        !          1167:                goto L637;   /* s%t $%k,%y */
        !          1168:        case 41: L41:   /* ARGB */
        !          1169:                dumptree(a, a->op);
        !          1170:                rewrite(a->kids[0]);
        !          1171:                goto L611;   /* # argb */
        !          1172:        case 49: L49:   /* ASGNF */
        !          1173:                dumptree(a, a->op);
        !          1174:                aset(a,0);
        !          1175:                rewrite(a->kids[0]);
        !          1176:                rewrite(a->kids[1]);
        !          1177:                a->x.ints[0] = 8;  /* ($%n) */
        !          1178:                a->kids[2] = a->kids[1];
        !          1179:                a->kids[1] = 0;
        !          1180:                a->x.ints[3] = 1;  /* s */
        !          1181:                goto L638;   /* s.%t $f%k,%y */
        !          1182:        case 50: L50:   /* ASGND */
        !          1183:                dumptree(a, a->op);
        !          1184:                aset(a,0);
        !          1185:                rewrite(a->kids[0]);
        !          1186:                rewrite(a->kids[1]);
        !          1187:                a->x.ints[0] = 8;  /* ($%n) */
        !          1188:                a->kids[2] = a->kids[1];
        !          1189:                a->kids[1] = 0;
        !          1190:                a->x.ints[3] = 2;  /* d */
        !          1191:                goto L638;   /* s.%t $f%k,%y */
        !          1192:        case 51: L51:   /* ASGNC */
        !          1193:                dumptree(a, a->op);
        !          1194:                aset(a,0);
        !          1195:                rewrite(a->kids[0]);
        !          1196:                rewrite(a->kids[1]);
        !          1197:                a->x.ints[0] = 8;  /* ($%n) */
        !          1198:                a->kids[2] = a->kids[1];
        !          1199:                a->kids[1] = 0;
        !          1200:                a->x.ints[3] = 3;  /* b */
        !          1201:                goto L637;   /* s%t $%k,%y */
        !          1202:        case 52: L52:   /* ASGNS */
        !          1203:                dumptree(a, a->op);
        !          1204:                aset(a,0);
        !          1205:                rewrite(a->kids[0]);
        !          1206:                rewrite(a->kids[1]);
        !          1207:                a->x.ints[0] = 8;  /* ($%n) */
        !          1208:                a->kids[2] = a->kids[1];
        !          1209:                a->kids[1] = 0;
        !          1210:                a->x.ints[3] = 4;  /* h */
        !          1211:                goto L637;   /* s%t $%k,%y */
        !          1212:        case 53: L53:   /* ASGNI */
        !          1213:                dumptree(a, a->op);
        !          1214:                aset(a,0);
        !          1215:                rewrite(a->kids[0]);
        !          1216:                rewrite(a->kids[1]);
        !          1217:                a->x.ints[0] = 8;  /* ($%n) */
        !          1218:                a->kids[2] = a->kids[1];
        !          1219:                a->kids[1] = 0;
        !          1220:                a->x.ints[3] = 5;  /* w */
        !          1221:                goto L637;   /* s%t $%k,%y */
        !          1222:        case 55: L55:   /* ASGNP */
        !          1223:                dumptree(a, a->op);
        !          1224:                aset(a,0);
        !          1225:                rewrite(a->kids[0]);
        !          1226:                rewrite(a->kids[1]);
        !          1227:                a->x.ints[0] = 8;  /* ($%n) */
        !          1228:                a->kids[2] = a->kids[1];
        !          1229:                a->kids[1] = 0;
        !          1230:                a->x.ints[3] = 5;  /* w */
        !          1231:                goto L637;   /* s%t $%k,%y */
        !          1232:        case 57: L57:   /* ASGNB */
        !          1233:                dumptree(a, a->op);
        !          1234:                rewrite(a->kids[0]);
        !          1235:                rewrite(a->kids[1]);
        !          1236:                goto L610;   /* # asgnb */
        !          1237:        case 65: L65:   /* INDIRF */
        !          1238:                dumptree(a, a->op);
        !          1239:                setreg(a, rmap[F]);
        !          1240:                aset(a,0);
        !          1241:                rewrite(a->kids[0]);
        !          1242:                a->x.ints[0] = 8;  /* ($%n) */
        !          1243:                a->x.ints[3] = 1;  /* s */
        !          1244:                goto L632;   /* l.%t $f%r,%y */
        !          1245:        case 66: L66:   /* INDIRD */
        !          1246:                dumptree(a, a->op);
        !          1247:                setreg(a, rmap[D]);
        !          1248:                aset(a,0);
        !          1249:                rewrite(a->kids[0]);
        !          1250:                a->x.ints[0] = 8;  /* ($%n) */
        !          1251:                a->x.ints[3] = 2;  /* d */
        !          1252:                goto L632;   /* l.%t $f%r,%y */
        !          1253:        case 67: L67:   /* INDIRC */
        !          1254:                dumptree(a, a->op);
        !          1255:                setreg(a, rmap[C]);
        !          1256:                aset(a,0);
        !          1257:                rewrite(a->kids[0]);
        !          1258:                a->x.ints[0] = 8;  /* ($%n) */
        !          1259:                a->x.ints[3] = 3;  /* b */
        !          1260:                goto L617;   /* l%t $%r,%y */
        !          1261:        case 68: L68:   /* INDIRS */
        !          1262:                dumptree(a, a->op);
        !          1263:                setreg(a, rmap[S]);
        !          1264:                aset(a,0);
        !          1265:                rewrite(a->kids[0]);
        !          1266:                a->x.ints[0] = 8;  /* ($%n) */
        !          1267:                a->x.ints[3] = 4;  /* h */
        !          1268:                goto L617;   /* l%t $%r,%y */
        !          1269:        case 69: L69:   /* INDIRI */
        !          1270:                dumptree(a, a->op);
        !          1271:                setreg(a, rmap[I]);
        !          1272:                aset(a,0);
        !          1273:                rewrite(a->kids[0]);
        !          1274:                a->x.ints[0] = 8;  /* ($%n) */
        !          1275:                a->x.ints[3] = 5;  /* w */
        !          1276:                goto L617;   /* l%t $%r,%y */
        !          1277:        case 71: L71:   /* INDIRP */
        !          1278:                dumptree(a, a->op);
        !          1279:                setreg(a, rmap[P]);
        !          1280:                aset(a,0);
        !          1281:                rewrite(a->kids[0]);
        !          1282:                a->x.ints[0] = 8;  /* ($%n) */
        !          1283:                a->x.ints[3] = 5;  /* w */
        !          1284:                goto L617;   /* l%t $%r,%y */
        !          1285:        case 73: L73:   /* INDIRB */
        !          1286:                dumptree(a, a->op);
        !          1287:                setreg(a, rmap[P]);
        !          1288:                aset(a,0);
        !          1289:                rewrite(a->kids[0]);
        !          1290:                a->x.ints[0] = 1;  /* $%n */
        !          1291:                goto L614;   /* move $%r,%y */
        !          1292:        case 85: L85:   /* CVCI */
        !          1293:                dumptree(a, a->op);
        !          1294:                setreg(a, rmap[I]);
        !          1295:                rewrite(a->kids[0]);
        !          1296:                a->x.ints[1] = 5;  /* %c */
        !          1297:                a->x.ints[2] = 10;  /* sra */
        !          1298:                a->syms[1] = &sym[10];  /* 24 */
        !          1299:                a->x.ints[1] = 5;  /* %c */
        !          1300:                a->x.ints[0] = 1;  /* $%n */
        !          1301:                goto L625;   /* sll $%r,%y,%x; %f $%r,$%r,%x */
        !          1302:        case 86: L86:   /* CVCU */
        !          1303:                dumptree(a, a->op);
        !          1304:                setreg(a, rmap[U]);
        !          1305:                rewrite(a->kids[0]);
        !          1306:                a->syms[1] = &sym[11];  /* 255 */
        !          1307:                a->x.ints[1] = 5;  /* %c */
        !          1308:                a->x.ints[0] = 1;  /* $%n */
        !          1309:                a->x.ints[2] = 1;  /* and */
        !          1310:                goto L619;   /* %f $%r,%y,%x */
        !          1311:        case 97: L97:   /* CVDF */
        !          1312:                dumptree(a, a->op);
        !          1313:                setreg(a, rmap[F]);
        !          1314:                rewrite(a->kids[0]);
        !          1315:                a->x.ints[0] = 3;  /* $f%n */
        !          1316:                a->x.ints[3] = 2;  /* d */
        !          1317:                a->x.ints[2] = 3;  /* cvt.s */
        !          1318:                goto L623;   /* %f.%t $f%r,%y */
        !          1319:        case 101: L101:   /* CVDI */
        !          1320:                dumptree(a, a->op);
        !          1321:                setreg(a, rmap[I]);
        !          1322:                rewrite(a->kids[0]);
        !          1323:                a->x.ints[0] = 3;  /* $f%n */
        !          1324:                a->x.ints[3] = 2;  /* d */
        !          1325:                a->x.ints[2] = 12;  /* trunc.w */
        !          1326:                goto L618;   /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
        !          1327:        case 114: L114:   /* CVFD */
        !          1328:                dumptree(a, a->op);
        !          1329:                setreg(a, rmap[D]);
        !          1330:                rewrite(a->kids[0]);
        !          1331:                a->x.ints[0] = 3;  /* $f%n */
        !          1332:                a->x.ints[3] = 1;  /* s */
        !          1333:                a->x.ints[2] = 2;  /* cvt.d */
        !          1334:                goto L623;   /* %f.%t $f%r,%y */
        !          1335:        case 130: L130:   /* CVID */
        !          1336:                dumptree(a, a->op);
        !          1337:                setreg(a, rmap[D]);
        !          1338:                rewrite(a->kids[0]);
        !          1339:                a->x.ints[3] = 5;  /* w */
        !          1340:                a->x.ints[2] = 2;  /* cvt.d */
        !          1341:                a->x.ints[0] = 1;  /* $%n */
        !          1342:                goto L636;   /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !          1343:        case 131: L131:   /* CVIC */
        !          1344:                dumptree(a, a->op);
        !          1345:                setreg(a, rmap[C]);
        !          1346:                rewrite(a->kids[0]);
        !          1347:                a->x.ints[0] = 1;  /* $%n */
        !          1348:                goto L614;   /* move $%r,%y */
        !          1349:        case 132: L132:   /* CVIS */
        !          1350:                dumptree(a, a->op);
        !          1351:                setreg(a, rmap[S]);
        !          1352:                rewrite(a->kids[0]);
        !          1353:                a->x.ints[0] = 1;  /* $%n */
        !          1354:                goto L614;   /* move $%r,%y */
        !          1355:        case 134: L134:   /* CVIU */
        !          1356:                dumptree(a, a->op);
        !          1357:                setreg(a, rmap[U]);
        !          1358:                rewrite(a->kids[0]);
        !          1359:                a->x.ints[0] = 1;  /* $%n */
        !          1360:                goto L614;   /* move $%r,%y */
        !          1361:        case 150: L150:   /* CVPU */
        !          1362:                dumptree(a, a->op);
        !          1363:                setreg(a, rmap[U]);
        !          1364:                rewrite(a->kids[0]);
        !          1365:                a->x.ints[0] = 1;  /* $%n */
        !          1366:                goto L614;   /* move $%r,%y */
        !          1367:        case 165: L165:   /* CVSI */
        !          1368:                dumptree(a, a->op);
        !          1369:                setreg(a, rmap[I]);
        !          1370:                rewrite(a->kids[0]);
        !          1371:                a->x.ints[1] = 5;  /* %c */
        !          1372:                a->x.ints[2] = 10;  /* sra */
        !          1373:                a->syms[1] = &sym[9];  /* 16 */
        !          1374:                a->x.ints[1] = 5;  /* %c */
        !          1375:                a->x.ints[0] = 1;  /* $%n */
        !          1376:                goto L625;   /* sll $%r,%y,%x; %f $%r,$%r,%x */
        !          1377:        case 166: L166:   /* CVSU */
        !          1378:                dumptree(a, a->op);
        !          1379:                setreg(a, rmap[U]);
        !          1380:                rewrite(a->kids[0]);
        !          1381:                a->syms[1] = &sym[12];  /* 65535 */
        !          1382:                a->x.ints[1] = 5;  /* %c */
        !          1383:                a->x.ints[0] = 1;  /* $%n */
        !          1384:                a->x.ints[2] = 1;  /* and */
        !          1385:                goto L619;   /* %f $%r,%y,%x */
        !          1386:        case 179: L179:   /* CVUC */
        !          1387:                dumptree(a, a->op);
        !          1388:                setreg(a, rmap[C]);
        !          1389:                rewrite(a->kids[0]);
        !          1390:                a->x.ints[0] = 1;  /* $%n */
        !          1391:                goto L614;   /* move $%r,%y */
        !          1392:        case 180: L180:   /* CVUS */
        !          1393:                dumptree(a, a->op);
        !          1394:                setreg(a, rmap[S]);
        !          1395:                rewrite(a->kids[0]);
        !          1396:                a->x.ints[0] = 1;  /* $%n */
        !          1397:                goto L614;   /* move $%r,%y */
        !          1398:        case 181: L181:   /* CVUI */
        !          1399:                dumptree(a, a->op);
        !          1400:                setreg(a, rmap[I]);
        !          1401:                rewrite(a->kids[0]);
        !          1402:                a->x.ints[0] = 1;  /* $%n */
        !          1403:                goto L614;   /* move $%r,%y */
        !          1404:        case 183: L183:   /* CVUP */
        !          1405:                dumptree(a, a->op);
        !          1406:                setreg(a, rmap[P]);
        !          1407:                rewrite(a->kids[0]);
        !          1408:                a->x.ints[0] = 1;  /* $%n */
        !          1409:                goto L614;   /* move $%r,%y */
        !          1410:        case 193: L193:   /* NEGF */
        !          1411:                dumptree(a, a->op);
        !          1412:                setreg(a, rmap[F]);
        !          1413:                rewrite(a->kids[0]);
        !          1414:                a->x.ints[0] = 3;  /* $f%n */
        !          1415:                a->x.ints[3] = 1;  /* s */
        !          1416:                a->x.ints[2] = 20;  /* neg */
        !          1417:                goto L623;   /* %f.%t $f%r,%y */
        !          1418:        case 194: L194:   /* NEGD */
        !          1419:                dumptree(a, a->op);
        !          1420:                setreg(a, rmap[D]);
        !          1421:                rewrite(a->kids[0]);
        !          1422:                a->x.ints[0] = 3;  /* $f%n */
        !          1423:                a->x.ints[3] = 2;  /* d */
        !          1424:                a->x.ints[2] = 20;  /* neg */
        !          1425:                goto L623;   /* %f.%t $f%r,%y */
        !          1426:        case 197: L197:   /* NEGI */
        !          1427:                dumptree(a, a->op);
        !          1428:                setreg(a, rmap[I]);
        !          1429:                rewrite(a->kids[0]);
        !          1430:                a->x.ints[0] = 1;  /* $%n */
        !          1431:                a->x.ints[2] = 29;  /* negu */
        !          1432:                goto L615;   /* %f $%r,%y */
        !          1433:        case 209: L209:   /* CALLF */
        !          1434:                dumptree(a, a->op);
        !          1435:                setreg(a, rmap[F]);
        !          1436:                rewrite(a->kids[0]);
        !          1437:                a->x.ints[0] = 1;  /* $%n */
        !          1438:                setreg(a,f0);
        !          1439:                goto L609;   /* jal %y  # real */
        !          1440:        case 210: L210:   /* CALLD */
        !          1441:                dumptree(a, a->op);
        !          1442:                setreg(a, rmap[D]);
        !          1443:                rewrite(a->kids[0]);
        !          1444:                a->x.ints[0] = 1;  /* $%n */
        !          1445:                setreg(a,f0);
        !          1446:                goto L609;   /* jal %y  # real */
        !          1447:        case 213: L213:   /* CALLI */
        !          1448:                dumptree(a, a->op);
        !          1449:                setreg(a, rmap[I]);
        !          1450:                rewrite(a->kids[0]);
        !          1451:                a->x.ints[0] = 1;  /* $%n */
        !          1452:                setreg(a,ireg[2]);
        !          1453:                goto L608;   /* jal %y  # int */
        !          1454:        case 216: L216:   /* CALLV */
        !          1455:                dumptree(a, a->op);
        !          1456:                rewrite(a->kids[0]);
        !          1457:                a->x.ints[0] = 1;  /* $%n */
        !          1458:                setreg(a,ireg[2]);
        !          1459:                goto L608;   /* jal %y  # int */
        !          1460:        case 217: L217:   /* CALLB */
        !          1461:                dumptree(a, a->op);
        !          1462:                rewrite(a->kids[0]);
        !          1463:                rewrite(a->kids[1]);
        !          1464:                a->x.ints[0] = 1;  /* $%n */
        !          1465:                setreg(a,ireg[2]),rtarget(a,1,ireg[4]);
        !          1466:                goto L608;   /* jal %y  # int */
        !          1467:        case 225: L225:   /* LOADF */
        !          1468:                dumptree(a, a->op);
        !          1469:                rewrite(a->kids[0]);
        !          1470:                a->x.ints[0] = 3;  /* $f%n */
        !          1471:                a->x.ints[3] = 1;  /* s */
        !          1472:                goto L635;   /* mov.%t $f%r,%y */
        !          1473:        case 226: L226:   /* LOADD */
        !          1474:                dumptree(a, a->op);
        !          1475:                rewrite(a->kids[0]);
        !          1476:                a->x.ints[0] = 3;  /* $f%n */
        !          1477:                a->x.ints[3] = 2;  /* d */
        !          1478:                goto L635;   /* mov.%t $f%r,%y */
        !          1479:        case 227: L227:   /* LOADC */
        !          1480:                dumptree(a, a->op);
        !          1481:                rewrite(a->kids[0]);
        !          1482:                a->x.ints[0] = 1;  /* $%n */
        !          1483:                a->x.ints[3] = 3;  /* b */
        !          1484:                goto L614;   /* move $%r,%y */
        !          1485:        case 228: L228:   /* LOADS */
        !          1486:                dumptree(a, a->op);
        !          1487:                rewrite(a->kids[0]);
        !          1488:                a->x.ints[0] = 1;  /* $%n */
        !          1489:                a->x.ints[3] = 4;  /* h */
        !          1490:                goto L614;   /* move $%r,%y */
        !          1491:        case 229: L229:   /* LOADI */
        !          1492:        case 230: L230:   /* LOADU */
        !          1493:        case 231: L231:   /* LOADP */
        !          1494:                dumptree(a, a->op);
        !          1495:                rewrite(a->kids[0]);
        !          1496:                a->x.ints[0] = 1;  /* $%n */
        !          1497:                a->x.ints[3] = 5;  /* w */
        !          1498:                goto L614;   /* move $%r,%y */
        !          1499:        case 241: L241:   /* RETF */
        !          1500:        case 242: L242:   /* RETD */
        !          1501:                dumptree(a, a->op);
        !          1502:                rewrite(a->kids[0]);
        !          1503:                rtarget(a,0,f0);
        !          1504:                goto L622;   /* # ret */
        !          1505:        case 245: L245:   /* RETI */
        !          1506:                dumptree(a, a->op);
        !          1507:                rewrite(a->kids[0]);
        !          1508:                rtarget(a,0,ireg[2]);
        !          1509:                goto L622;   /* # ret */
        !          1510:        case 248: L248:   /* RETV */
        !          1511:                dumptree(a, a->op);
        !          1512:                goto L622;   /* # ret */
        !          1513:        case 263: L263:   /* ADDRGP */
        !          1514:                dumptree(a, a->op);
        !          1515:                setreg(a, rmap[P]);
        !          1516:                a->x.ints[0] = 5;  /* %c */
        !          1517:                goto L612;   /* la $%r,%y */
        !          1518:        case 279: L279:   /* ADDRFP */
        !          1519:                dumptree(a, a->op);
        !          1520:                setreg(a, rmap[P]);
        !          1521:                a->x.ints[0] = 7;  /* %c($sp) */
        !          1522:                goto L612;   /* la $%r,%y */
        !          1523:        case 295: L295:   /* ADDRLP */
        !          1524:                dumptree(a, a->op);
        !          1525:                setreg(a, rmap[P]);
        !          1526:                a->x.ints[0] = 7;  /* %c($sp) */
        !          1527:                goto L612;   /* la $%r,%y */
        !          1528:        case 305: L305:   /* ADDF */
        !          1529:                dumptree(a, a->op);
        !          1530:                setreg(a, rmap[F]);
        !          1531:                rewrite(a->kids[0]);
        !          1532:                rewrite(a->kids[1]);
        !          1533:                a->x.ints[1] = 3;  /* $f%n */
        !          1534:                a->x.ints[0] = 3;  /* $f%n */
        !          1535:                a->x.ints[3] = 1;  /* s */
        !          1536:                a->x.ints[2] = 14;  /* add */
        !          1537:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1538:        case 306: L306:   /* ADDD */
        !          1539:                dumptree(a, a->op);
        !          1540:                setreg(a, rmap[D]);
        !          1541:                rewrite(a->kids[0]);
        !          1542:                rewrite(a->kids[1]);
        !          1543:                a->x.ints[1] = 3;  /* $f%n */
        !          1544:                a->x.ints[0] = 3;  /* $f%n */
        !          1545:                a->x.ints[3] = 2;  /* d */
        !          1546:                a->x.ints[2] = 14;  /* add */
        !          1547:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1548:        case 309: L309:   /* ADDI */
        !          1549:                dumptree(a, a->op);
        !          1550:                setreg(a, rmap[I]);
        !          1551:                rewrite(a->kids[0]);
        !          1552:                rewrite(a->kids[1]);
        !          1553:                a->x.ints[1] = 1;  /* $%n */
        !          1554:                a->x.ints[0] = 1;  /* $%n */
        !          1555:                a->x.ints[2] = 23;  /* addu */
        !          1556:                goto L619;   /* %f $%r,%y,%x */
        !          1557:        case 310: L310:   /* ADDU */
        !          1558:                dumptree(a, a->op);
        !          1559:                setreg(a, rmap[U]);
        !          1560:                rewrite(a->kids[0]);
        !          1561:                rewrite(a->kids[1]);
        !          1562:                a->x.ints[1] = 1;  /* $%n */
        !          1563:                a->x.ints[0] = 1;  /* $%n */
        !          1564:                a->x.ints[2] = 23;  /* addu */
        !          1565:                goto L619;   /* %f $%r,%y,%x */
        !          1566:        case 311: L311:   /* ADDP */
        !          1567:                dumptree(a, a->op);
        !          1568:                setreg(a, rmap[P]);
        !          1569:                rewrite(a->kids[0]);
        !          1570:                rewrite(a->kids[1]);
        !          1571:                a->x.ints[1] = 1;  /* $%n */
        !          1572:                a->x.ints[0] = 1;  /* $%n */
        !          1573:                a->x.ints[2] = 23;  /* addu */
        !          1574:                goto L619;   /* %f $%r,%y,%x */
        !          1575:        case 321: L321:   /* SUBF */
        !          1576:                dumptree(a, a->op);
        !          1577:                setreg(a, rmap[F]);
        !          1578:                rewrite(a->kids[0]);
        !          1579:                rewrite(a->kids[1]);
        !          1580:                a->x.ints[1] = 3;  /* $f%n */
        !          1581:                a->x.ints[0] = 3;  /* $f%n */
        !          1582:                a->x.ints[3] = 1;  /* s */
        !          1583:                a->x.ints[2] = 22;  /* sub */
        !          1584:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1585:        case 322: L322:   /* SUBD */
        !          1586:                dumptree(a, a->op);
        !          1587:                setreg(a, rmap[D]);
        !          1588:                rewrite(a->kids[0]);
        !          1589:                rewrite(a->kids[1]);
        !          1590:                a->x.ints[1] = 3;  /* $f%n */
        !          1591:                a->x.ints[0] = 3;  /* $f%n */
        !          1592:                a->x.ints[3] = 2;  /* d */
        !          1593:                a->x.ints[2] = 22;  /* sub */
        !          1594:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1595:        case 325: L325:   /* SUBI */
        !          1596:                dumptree(a, a->op);
        !          1597:                setreg(a, rmap[I]);
        !          1598:                rewrite(a->kids[0]);
        !          1599:                rewrite(a->kids[1]);
        !          1600:                a->x.ints[1] = 1;  /* $%n */
        !          1601:                a->x.ints[0] = 1;  /* $%n */
        !          1602:                a->x.ints[2] = 31;  /* subu */
        !          1603:                goto L619;   /* %f $%r,%y,%x */
        !          1604:        case 326: L326:   /* SUBU */
        !          1605:                dumptree(a, a->op);
        !          1606:                setreg(a, rmap[U]);
        !          1607:                rewrite(a->kids[0]);
        !          1608:                rewrite(a->kids[1]);
        !          1609:                a->x.ints[1] = 1;  /* $%n */
        !          1610:                a->x.ints[0] = 1;  /* $%n */
        !          1611:                a->x.ints[2] = 31;  /* subu */
        !          1612:                goto L619;   /* %f $%r,%y,%x */
        !          1613:        case 327: L327:   /* SUBP */
        !          1614:                dumptree(a, a->op);
        !          1615:                setreg(a, rmap[P]);
        !          1616:                rewrite(a->kids[0]);
        !          1617:                rewrite(a->kids[1]);
        !          1618:                a->x.ints[1] = 1;  /* $%n */
        !          1619:                a->x.ints[0] = 1;  /* $%n */
        !          1620:                a->x.ints[2] = 31;  /* subu */
        !          1621:                goto L619;   /* %f $%r,%y,%x */
        !          1622:        case 341: L341:   /* LSHI */
        !          1623:                dumptree(a, a->op);
        !          1624:                setreg(a, rmap[I]);
        !          1625:                rewrite(a->kids[0]);
        !          1626:                rewrite(a->kids[1]);
        !          1627:                a->x.ints[1] = 1;  /* $%n */
        !          1628:                a->x.ints[0] = 1;  /* $%n */
        !          1629:                a->x.ints[2] = 9;  /* sll */
        !          1630:                goto L619;   /* %f $%r,%y,%x */
        !          1631:        case 342: L342:   /* LSHU */
        !          1632:                dumptree(a, a->op);
        !          1633:                setreg(a, rmap[U]);
        !          1634:                rewrite(a->kids[0]);
        !          1635:                rewrite(a->kids[1]);
        !          1636:                a->x.ints[1] = 1;  /* $%n */
        !          1637:                a->x.ints[0] = 1;  /* $%n */
        !          1638:                a->x.ints[2] = 9;  /* sll */
        !          1639:                goto L619;   /* %f $%r,%y,%x */
        !          1640:        case 357: L357:   /* MODI */
        !          1641:                dumptree(a, a->op);
        !          1642:                setreg(a, rmap[I]);
        !          1643:                rewrite(a->kids[0]);
        !          1644:                rewrite(a->kids[1]);
        !          1645:                a->x.ints[1] = 1;  /* $%n */
        !          1646:                a->x.ints[0] = 1;  /* $%n */
        !          1647:                a->x.ints[2] = 21;  /* rem */
        !          1648:                goto L619;   /* %f $%r,%y,%x */
        !          1649:        case 358: L358:   /* MODU */
        !          1650:                dumptree(a, a->op);
        !          1651:                setreg(a, rmap[U]);
        !          1652:                rewrite(a->kids[0]);
        !          1653:                rewrite(a->kids[1]);
        !          1654:                a->x.ints[1] = 1;  /* $%n */
        !          1655:                a->x.ints[0] = 1;  /* $%n */
        !          1656:                a->x.ints[2] = 30;  /* remu */
        !          1657:                goto L619;   /* %f $%r,%y,%x */
        !          1658:        case 373: L373:   /* RSHI */
        !          1659:                dumptree(a, a->op);
        !          1660:                setreg(a, rmap[I]);
        !          1661:                rewrite(a->kids[0]);
        !          1662:                rewrite(a->kids[1]);
        !          1663:                a->x.ints[1] = 1;  /* $%n */
        !          1664:                a->x.ints[0] = 1;  /* $%n */
        !          1665:                a->x.ints[2] = 10;  /* sra */
        !          1666:                goto L619;   /* %f $%r,%y,%x */
        !          1667:        case 374: L374:   /* RSHU */
        !          1668:                dumptree(a, a->op);
        !          1669:                setreg(a, rmap[U]);
        !          1670:                rewrite(a->kids[0]);
        !          1671:                rewrite(a->kids[1]);
        !          1672:                a->x.ints[1] = 1;  /* $%n */
        !          1673:                a->x.ints[0] = 1;  /* $%n */
        !          1674:                a->x.ints[2] = 11;  /* srl */
        !          1675:                goto L619;   /* %f $%r,%y,%x */
        !          1676:        case 390: L390:   /* BANDU */
        !          1677:                dumptree(a, a->op);
        !          1678:                setreg(a, rmap[U]);
        !          1679:                rewrite(a->kids[0]);
        !          1680:                rewrite(a->kids[1]);
        !          1681:                a->x.ints[1] = 1;  /* $%n */
        !          1682:                a->x.ints[0] = 1;  /* $%n */
        !          1683:                a->x.ints[2] = 1;  /* and */
        !          1684:                goto L619;   /* %f $%r,%y,%x */
        !          1685:        case 406: L406:   /* BCOMU */
        !          1686:                dumptree(a, a->op);
        !          1687:                setreg(a, rmap[U]);
        !          1688:                rewrite(a->kids[0]);
        !          1689:                a->x.ints[0] = 1;  /* $%n */
        !          1690:                a->x.ints[2] = 7;  /* not */
        !          1691:                goto L615;   /* %f $%r,%y */
        !          1692:        case 422: L422:   /* BORU */
        !          1693:                dumptree(a, a->op);
        !          1694:                setreg(a, rmap[U]);
        !          1695:                rewrite(a->kids[0]);
        !          1696:                rewrite(a->kids[1]);
        !          1697:                a->x.ints[1] = 1;  /* $%n */
        !          1698:                a->x.ints[0] = 1;  /* $%n */
        !          1699:                a->x.ints[2] = 8;  /* or */
        !          1700:                goto L619;   /* %f $%r,%y,%x */
        !          1701:        case 438: L438:   /* BXORU */
        !          1702:                dumptree(a, a->op);
        !          1703:                setreg(a, rmap[U]);
        !          1704:                rewrite(a->kids[0]);
        !          1705:                rewrite(a->kids[1]);
        !          1706:                a->x.ints[1] = 1;  /* $%n */
        !          1707:                a->x.ints[0] = 1;  /* $%n */
        !          1708:                a->x.ints[2] = 13;  /* xor */
        !          1709:                goto L619;   /* %f $%r,%y,%x */
        !          1710:        case 449: L449:   /* DIVF */
        !          1711:                dumptree(a, a->op);
        !          1712:                setreg(a, rmap[F]);
        !          1713:                rewrite(a->kids[0]);
        !          1714:                rewrite(a->kids[1]);
        !          1715:                a->x.ints[1] = 3;  /* $f%n */
        !          1716:                a->x.ints[0] = 3;  /* $f%n */
        !          1717:                a->x.ints[3] = 1;  /* s */
        !          1718:                a->x.ints[2] = 15;  /* div */
        !          1719:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1720:        case 450: L450:   /* DIVD */
        !          1721:                dumptree(a, a->op);
        !          1722:                setreg(a, rmap[D]);
        !          1723:                rewrite(a->kids[0]);
        !          1724:                rewrite(a->kids[1]);
        !          1725:                a->x.ints[1] = 3;  /* $f%n */
        !          1726:                a->x.ints[0] = 3;  /* $f%n */
        !          1727:                a->x.ints[3] = 2;  /* d */
        !          1728:                a->x.ints[2] = 15;  /* div */
        !          1729:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1730:        case 453: L453:   /* DIVI */
        !          1731:                dumptree(a, a->op);
        !          1732:                setreg(a, rmap[I]);
        !          1733:                rewrite(a->kids[0]);
        !          1734:                rewrite(a->kids[1]);
        !          1735:                a->x.ints[1] = 1;  /* $%n */
        !          1736:                a->x.ints[0] = 1;  /* $%n */
        !          1737:                a->x.ints[2] = 15;  /* div */
        !          1738:                goto L619;   /* %f $%r,%y,%x */
        !          1739:        case 454: L454:   /* DIVU */
        !          1740:                dumptree(a, a->op);
        !          1741:                setreg(a, rmap[U]);
        !          1742:                rewrite(a->kids[0]);
        !          1743:                rewrite(a->kids[1]);
        !          1744:                a->x.ints[1] = 1;  /* $%n */
        !          1745:                a->x.ints[0] = 1;  /* $%n */
        !          1746:                a->x.ints[2] = 24;  /* divu */
        !          1747:                goto L619;   /* %f $%r,%y,%x */
        !          1748:        case 465: L465:   /* MULF */
        !          1749:                dumptree(a, a->op);
        !          1750:                setreg(a, rmap[F]);
        !          1751:                rewrite(a->kids[0]);
        !          1752:                rewrite(a->kids[1]);
        !          1753:                a->x.ints[1] = 3;  /* $f%n */
        !          1754:                a->x.ints[0] = 3;  /* $f%n */
        !          1755:                a->x.ints[3] = 1;  /* s */
        !          1756:                a->x.ints[2] = 5;  /* mul */
        !          1757:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1758:        case 466: L466:   /* MULD */
        !          1759:                dumptree(a, a->op);
        !          1760:                setreg(a, rmap[D]);
        !          1761:                rewrite(a->kids[0]);
        !          1762:                rewrite(a->kids[1]);
        !          1763:                a->x.ints[1] = 3;  /* $f%n */
        !          1764:                a->x.ints[0] = 3;  /* $f%n */
        !          1765:                a->x.ints[3] = 2;  /* d */
        !          1766:                a->x.ints[2] = 5;  /* mul */
        !          1767:                goto L624;   /* %f.%t $f%r,%y,%x */
        !          1768:        case 469: L469:   /* MULI */
        !          1769:                dumptree(a, a->op);
        !          1770:                setreg(a, rmap[I]);
        !          1771:                rewrite(a->kids[0]);
        !          1772:                rewrite(a->kids[1]);
        !          1773:                a->x.ints[1] = 1;  /* $%n */
        !          1774:                a->x.ints[0] = 1;  /* $%n */
        !          1775:                a->x.ints[2] = 5;  /* mul */
        !          1776:                goto L619;   /* %f $%r,%y,%x */
        !          1777:        case 470: L470:   /* MULU */
        !          1778:                dumptree(a, a->op);
        !          1779:                setreg(a, rmap[U]);
        !          1780:                rewrite(a->kids[0]);
        !          1781:                rewrite(a->kids[1]);
        !          1782:                a->x.ints[1] = 1;  /* $%n */
        !          1783:                a->x.ints[0] = 1;  /* $%n */
        !          1784:                a->x.ints[2] = 5;  /* mul */
        !          1785:                goto L619;   /* %f $%r,%y,%x */
        !          1786:        case 481: L481:   /* EQF */
        !          1787:                dumptree(a, a->op);
        !          1788:                rewrite(a->kids[0]);
        !          1789:                rewrite(a->kids[1]);
        !          1790:                a->syms[2] = a->syms[0];
        !          1791:                a->x.ints[1] = 3;  /* $f%n */
        !          1792:                a->x.ints[0] = 3;  /* $f%n */
        !          1793:                a->x.ints[3] = 1;  /* s */
        !          1794:                a->x.ints[2] = 4;  /* eq */
        !          1795:                goto L631;   /* c.%f.%t %y,%x; bc1t %r */
        !          1796:        case 482: L482:   /* EQD */
        !          1797:                dumptree(a, a->op);
        !          1798:                rewrite(a->kids[0]);
        !          1799:                rewrite(a->kids[1]);
        !          1800:                a->syms[2] = a->syms[0];
        !          1801:                a->x.ints[1] = 3;  /* $f%n */
        !          1802:                a->x.ints[0] = 3;  /* $f%n */
        !          1803:                a->x.ints[3] = 2;  /* d */
        !          1804:                a->x.ints[2] = 4;  /* eq */
        !          1805:                goto L631;   /* c.%f.%t %y,%x; bc1t %r */
        !          1806:        case 485: L485:   /* EQI */
        !          1807:                dumptree(a, a->op);
        !          1808:                rewrite(a->kids[0]);
        !          1809:                rewrite(a->kids[1]);
        !          1810:                a->syms[2] = a->syms[0];
        !          1811:                a->x.ints[1] = 1;  /* $%n */
        !          1812:                a->x.ints[0] = 1;  /* $%n */
        !          1813:                a->x.ints[2] = 4;  /* eq */
        !          1814:                goto L627;   /* b%f %y,%x,%r */
        !          1815:        case 497: L497:   /* GEF */
        !          1816:                dumptree(a, a->op);
        !          1817:                rewrite(a->kids[0]);
        !          1818:                rewrite(a->kids[1]);
        !          1819:                a->syms[2] = a->syms[0];
        !          1820:                a->x.ints[1] = 3;  /* $f%n */
        !          1821:                a->x.ints[0] = 3;  /* $f%n */
        !          1822:                a->x.ints[3] = 1;  /* s */
        !          1823:                a->x.ints[2] = 19;  /* lt */
        !          1824:                goto L630;   /* c.%f.%t %y,%x; bc1f %r */
        !          1825:        case 498: L498:   /* GED */
        !          1826:                dumptree(a, a->op);
        !          1827:                rewrite(a->kids[0]);
        !          1828:                rewrite(a->kids[1]);
        !          1829:                a->syms[2] = a->syms[0];
        !          1830:                a->x.ints[1] = 3;  /* $f%n */
        !          1831:                a->x.ints[0] = 3;  /* $f%n */
        !          1832:                a->x.ints[3] = 2;  /* d */
        !          1833:                a->x.ints[2] = 19;  /* lt */
        !          1834:                goto L630;   /* c.%f.%t %y,%x; bc1f %r */
        !          1835:        case 501: L501:   /* GEI */
        !          1836:                dumptree(a, a->op);
        !          1837:                rewrite(a->kids[0]);
        !          1838:                rewrite(a->kids[1]);
        !          1839:                a->syms[2] = a->syms[0];
        !          1840:                a->x.ints[1] = 1;  /* $%n */
        !          1841:                a->x.ints[0] = 1;  /* $%n */
        !          1842:                a->x.ints[2] = 16;  /* ge */
        !          1843:                goto L627;   /* b%f %y,%x,%r */
        !          1844:        case 502: L502:   /* GEU */
        !          1845:                dumptree(a, a->op);
        !          1846:                rewrite(a->kids[0]);
        !          1847:                rewrite(a->kids[1]);
        !          1848:                a->syms[2] = a->syms[0];
        !          1849:                a->x.ints[1] = 1;  /* $%n */
        !          1850:                a->x.ints[0] = 1;  /* $%n */
        !          1851:                a->x.ints[2] = 25;  /* geu */
        !          1852:                goto L627;   /* b%f %y,%x,%r */
        !          1853:        case 513: L513:   /* GTF */
        !          1854:                dumptree(a, a->op);
        !          1855:                rewrite(a->kids[0]);
        !          1856:                rewrite(a->kids[1]);
        !          1857:                a->syms[2] = a->syms[0];
        !          1858:                a->x.ints[1] = 3;  /* $f%n */
        !          1859:                a->x.ints[0] = 3;  /* $f%n */
        !          1860:                a->x.ints[3] = 1;  /* s */
        !          1861:                a->x.ints[2] = 18;  /* le */
        !          1862:                goto L630;   /* c.%f.%t %y,%x; bc1f %r */
        !          1863:        case 514: L514:   /* GTD */
        !          1864:                dumptree(a, a->op);
        !          1865:                rewrite(a->kids[0]);
        !          1866:                rewrite(a->kids[1]);
        !          1867:                a->syms[2] = a->syms[0];
        !          1868:                a->x.ints[1] = 3;  /* $f%n */
        !          1869:                a->x.ints[0] = 3;  /* $f%n */
        !          1870:                a->x.ints[3] = 2;  /* d */
        !          1871:                a->x.ints[2] = 18;  /* le */
        !          1872:                goto L630;   /* c.%f.%t %y,%x; bc1f %r */
        !          1873:        case 517: L517:   /* GTI */
        !          1874:                dumptree(a, a->op);
        !          1875:                rewrite(a->kids[0]);
        !          1876:                rewrite(a->kids[1]);
        !          1877:                a->syms[2] = a->syms[0];
        !          1878:                a->x.ints[1] = 1;  /* $%n */
        !          1879:                a->x.ints[0] = 1;  /* $%n */
        !          1880:                a->x.ints[2] = 17;  /* gt */
        !          1881:                goto L627;   /* b%f %y,%x,%r */
        !          1882:        case 518: L518:   /* GTU */
        !          1883:                dumptree(a, a->op);
        !          1884:                rewrite(a->kids[0]);
        !          1885:                rewrite(a->kids[1]);
        !          1886:                a->syms[2] = a->syms[0];
        !          1887:                a->x.ints[1] = 1;  /* $%n */
        !          1888:                a->x.ints[0] = 1;  /* $%n */
        !          1889:                a->x.ints[2] = 26;  /* gtu */
        !          1890:                goto L627;   /* b%f %y,%x,%r */
        !          1891:        case 529: L529:   /* LEF */
        !          1892:                dumptree(a, a->op);
        !          1893:                rewrite(a->kids[0]);
        !          1894:                rewrite(a->kids[1]);
        !          1895:                a->syms[2] = a->syms[0];
        !          1896:                a->x.ints[1] = 3;  /* $f%n */
        !          1897:                a->x.ints[0] = 3;  /* $f%n */
        !          1898:                a->x.ints[3] = 1;  /* s */
        !          1899:                a->x.ints[2] = 18;  /* le */
        !          1900:                goto L631;   /* c.%f.%t %y,%x; bc1t %r */
        !          1901:        case 530: L530:   /* LED */
        !          1902:                dumptree(a, a->op);
        !          1903:                rewrite(a->kids[0]);
        !          1904:                rewrite(a->kids[1]);
        !          1905:                a->syms[2] = a->syms[0];
        !          1906:                a->x.ints[1] = 3;  /* $f%n */
        !          1907:                a->x.ints[0] = 3;  /* $f%n */
        !          1908:                a->x.ints[3] = 2;  /* d */
        !          1909:                a->x.ints[2] = 18;  /* le */
        !          1910:                goto L631;   /* c.%f.%t %y,%x; bc1t %r */
        !          1911:        case 533: L533:   /* LEI */
        !          1912:                dumptree(a, a->op);
        !          1913:                rewrite(a->kids[0]);
        !          1914:                rewrite(a->kids[1]);
        !          1915:                a->syms[2] = a->syms[0];
        !          1916:                a->x.ints[1] = 1;  /* $%n */
        !          1917:                a->x.ints[0] = 1;  /* $%n */
        !          1918:                a->x.ints[2] = 18;  /* le */
        !          1919:                goto L627;   /* b%f %y,%x,%r */
        !          1920:        case 534: L534:   /* LEU */
        !          1921:                dumptree(a, a->op);
        !          1922:                rewrite(a->kids[0]);
        !          1923:                rewrite(a->kids[1]);
        !          1924:                a->syms[2] = a->syms[0];
        !          1925:                a->x.ints[1] = 1;  /* $%n */
        !          1926:                a->x.ints[0] = 1;  /* $%n */
        !          1927:                a->x.ints[2] = 27;  /* leu */
        !          1928:                goto L627;   /* b%f %y,%x,%r */
        !          1929:        case 545: L545:   /* LTF */
        !          1930:                dumptree(a, a->op);
        !          1931:                rewrite(a->kids[0]);
        !          1932:                rewrite(a->kids[1]);
        !          1933:                a->syms[2] = a->syms[0];
        !          1934:                a->x.ints[1] = 3;  /* $f%n */
        !          1935:                a->x.ints[0] = 3;  /* $f%n */
        !          1936:                a->x.ints[3] = 1;  /* s */
        !          1937:                a->x.ints[2] = 19;  /* lt */
        !          1938:                goto L631;   /* c.%f.%t %y,%x; bc1t %r */
        !          1939:        case 546: L546:   /* LTD */
        !          1940:                dumptree(a, a->op);
        !          1941:                rewrite(a->kids[0]);
        !          1942:                rewrite(a->kids[1]);
        !          1943:                a->syms[2] = a->syms[0];
        !          1944:                a->x.ints[1] = 3;  /* $f%n */
        !          1945:                a->x.ints[0] = 3;  /* $f%n */
        !          1946:                a->x.ints[3] = 2;  /* d */
        !          1947:                a->x.ints[2] = 19;  /* lt */
        !          1948:                goto L631;   /* c.%f.%t %y,%x; bc1t %r */
        !          1949:        case 549: L549:   /* LTI */
        !          1950:                dumptree(a, a->op);
        !          1951:                rewrite(a->kids[0]);
        !          1952:                rewrite(a->kids[1]);
        !          1953:                a->syms[2] = a->syms[0];
        !          1954:                a->x.ints[1] = 1;  /* $%n */
        !          1955:                a->x.ints[0] = 1;  /* $%n */
        !          1956:                a->x.ints[2] = 19;  /* lt */
        !          1957:                goto L627;   /* b%f %y,%x,%r */
        !          1958:        case 550: L550:   /* LTU */
        !          1959:                dumptree(a, a->op);
        !          1960:                rewrite(a->kids[0]);
        !          1961:                rewrite(a->kids[1]);
        !          1962:                a->syms[2] = a->syms[0];
        !          1963:                a->x.ints[1] = 1;  /* $%n */
        !          1964:                a->x.ints[0] = 1;  /* $%n */
        !          1965:                a->x.ints[2] = 28;  /* ltu */
        !          1966:                goto L627;   /* b%f %y,%x,%r */
        !          1967:        case 561: L561:   /* NEF */
        !          1968:                dumptree(a, a->op);
        !          1969:                rewrite(a->kids[0]);
        !          1970:                rewrite(a->kids[1]);
        !          1971:                a->syms[2] = a->syms[0];
        !          1972:                a->x.ints[1] = 3;  /* $f%n */
        !          1973:                a->x.ints[0] = 3;  /* $f%n */
        !          1974:                a->x.ints[3] = 1;  /* s */
        !          1975:                a->x.ints[2] = 4;  /* eq */
        !          1976:                goto L630;   /* c.%f.%t %y,%x; bc1f %r */
        !          1977:        case 562: L562:   /* NED */
        !          1978:                dumptree(a, a->op);
        !          1979:                rewrite(a->kids[0]);
        !          1980:                rewrite(a->kids[1]);
        !          1981:                a->syms[2] = a->syms[0];
        !          1982:                a->x.ints[1] = 3;  /* $f%n */
        !          1983:                a->x.ints[0] = 3;  /* $f%n */
        !          1984:                a->x.ints[3] = 2;  /* d */
        !          1985:                a->x.ints[2] = 4;  /* eq */
        !          1986:                goto L630;   /* c.%f.%t %y,%x; bc1f %r */
        !          1987:        case 565: L565:   /* NEI */
        !          1988:                dumptree(a, a->op);
        !          1989:                rewrite(a->kids[0]);
        !          1990:                rewrite(a->kids[1]);
        !          1991:                a->syms[2] = a->syms[0];
        !          1992:                a->x.ints[1] = 1;  /* $%n */
        !          1993:                a->x.ints[0] = 1;  /* $%n */
        !          1994:                a->x.ints[2] = 6;  /* ne */
        !          1995:                goto L627;   /* b%f %y,%x,%r */
        !          1996:        case 584: L584:   /* JUMPV */
        !          1997:                dumptree(a, a->op);
        !          1998:                rewrite(a->kids[0]);
        !          1999:                a->x.ints[0] = 1;  /* $%n */
        !          2000:                goto L629;   /* j %y */
        !          2001:        case 600: L600:   /* LABELV */
        !          2002:                dumptree(a, a->op);
        !          2003:                a->x.ints[0] = 5;  /* %c */
        !          2004:                goto L639;   /* %y: */
        !          2005:        case 608: L608:   /* jal %y  # int */
        !          2006:                dumptree(a, 608);
        !          2007:                b = a->kids[0];
        !          2008:                if (
        !          2009:                a->x.ints[0] == 1  /* $%n */
        !          2010:                && b->op == 612  /* la $%r,%y */
        !          2011:                && b->x.ints[0] == 5  /* %c */
        !          2012:                ) {
        !          2013:                        if (--b->count > 0)
        !          2014:                                if (c=b->kids[0]) ++c->count;
        !          2015:                        a->syms[0] = b->syms[0];
        !          2016:                        a->x.ints[0] = b->x.ints[0];
        !          2017:                        a->kids[0] = b->kids[0];
        !          2018:                        goto L608;   /* jal %y  # int */
        !          2019:                }
        !          2020:                a->op = 608;
        !          2021:                break;
        !          2022:        case 609: L609:   /* jal %y  # real */
        !          2023:                dumptree(a, 609);
        !          2024:                b = a->kids[0];
        !          2025:                if (
        !          2026:                a->x.ints[0] == 1  /* $%n */
        !          2027:                && b->op == 612  /* la $%r,%y */
        !          2028:                && b->x.ints[0] == 5  /* %c */
        !          2029:                ) {
        !          2030:                        if (--b->count > 0)
        !          2031:                                if (c=b->kids[0]) ++c->count;
        !          2032:                        a->syms[0] = b->syms[0];
        !          2033:                        a->x.ints[0] = b->x.ints[0];
        !          2034:                        a->kids[0] = b->kids[0];
        !          2035:                        goto L609;   /* jal %y  # real */
        !          2036:                }
        !          2037:                a->op = 609;
        !          2038:                break;
        !          2039:        case 610: L610:   /* # asgnb */
        !          2040:                dumptree(a, 610);
        !          2041:                a->op = 610;
        !          2042:                break;
        !          2043:        case 611: L611:   /* # argb */
        !          2044:                dumptree(a, 611);
        !          2045:                a->op = 611;
        !          2046:                break;
        !          2047:        case 612: L612:   /* la $%r,%y */
        !          2048:                dumptree(a, 612);
        !          2049:                a->op = 612;
        !          2050:                break;
        !          2051:        case 613: L613:   /* mfc1 $%r,%y */
        !          2052:                dumptree(a, 613);
        !          2053:                a->op = 613;
        !          2054:                break;
        !          2055:        case 614: L614:   /* move $%r,%y */
        !          2056:                dumptree(a, 614);
        !          2057:                switch (a->x.ints[0]) {
        !          2058:                case 1:   /* $%n */
        !          2059:                        b = a->kids[0];
        !          2060:                        switch (b->op) {
        !          2061:                        case 612:   /* la $%r,%y */
        !          2062:                                if (
        !          2063:                                b->count == 1
        !          2064:                                ) {
        !          2065:                                        if (--b->count > 0) {
        !          2066:                                                if (c=b->kids[0]) ++c->count;
        !          2067:                                                if (c=b->kids[1]) ++c->count;
        !          2068:                                        }
        !          2069:                                        a->syms[1] = b->syms[1];
        !          2070:                                        a->kids[1] = b->kids[1];
        !          2071:                                        a->x.ints[1] = b->x.ints[1];
        !          2072:                                        a->syms[0] = b->syms[0];
        !          2073:                                        a->x.ints[0] = b->x.ints[0];
        !          2074:                                        a->kids[0] = b->kids[0];
        !          2075:                                        a->x.ints[2] = b->x.ints[2];
        !          2076:                                        a->x.ints[3] = b->x.ints[3];
        !          2077:                                        goto L612;   /* la $%r,%y */
        !          2078:                                }
        !          2079:                                break;
        !          2080:                        case 613:   /* mfc1 $%r,%y */
        !          2081:                                if (
        !          2082:                                b->count == 1
        !          2083:                                ) {
        !          2084:                                        if (--b->count > 0) {
        !          2085:                                                if (c=b->kids[0]) ++c->count;
        !          2086:                                                if (c=b->kids[1]) ++c->count;
        !          2087:                                        }
        !          2088:                                        a->syms[1] = b->syms[1];
        !          2089:                                        a->kids[1] = b->kids[1];
        !          2090:                                        a->x.ints[1] = b->x.ints[1];
        !          2091:                                        a->syms[0] = b->syms[0];
        !          2092:                                        a->x.ints[0] = b->x.ints[0];
        !          2093:                                        a->kids[0] = b->kids[0];
        !          2094:                                        a->x.ints[2] = b->x.ints[2];
        !          2095:                                        a->x.ints[3] = b->x.ints[3];
        !          2096:                                        goto L613;   /* mfc1 $%r,%y */
        !          2097:                                }
        !          2098:                                break;
        !          2099:                        case 614:   /* move $%r,%y */
        !          2100:                                if (
        !          2101:                                b->count == 1
        !          2102:                                ) {
        !          2103:                                        if (--b->count > 0) {
        !          2104:                                                if (c=b->kids[0]) ++c->count;
        !          2105:                                                if (c=b->kids[1]) ++c->count;
        !          2106:                                        }
        !          2107:                                        a->syms[1] = b->syms[1];
        !          2108:                                        a->kids[1] = b->kids[1];
        !          2109:                                        a->x.ints[1] = b->x.ints[1];
        !          2110:                                        a->syms[0] = b->syms[0];
        !          2111:                                        a->x.ints[0] = b->x.ints[0];
        !          2112:                                        a->kids[0] = b->kids[0];
        !          2113:                                        a->x.ints[2] = b->x.ints[2];
        !          2114:                                        a->x.ints[3] = b->x.ints[3];
        !          2115:                                        goto L614;   /* move $%r,%y */
        !          2116:                                }
        !          2117:                                break;
        !          2118:                        case 615:   /* %f $%r,%y */
        !          2119:                                if (
        !          2120:                                b->count == 1
        !          2121:                                ) {
        !          2122:                                        if (--b->count > 0) {
        !          2123:                                                if (c=b->kids[0]) ++c->count;
        !          2124:                                                if (c=b->kids[1]) ++c->count;
        !          2125:                                        }
        !          2126:                                        a->syms[1] = b->syms[1];
        !          2127:                                        a->kids[1] = b->kids[1];
        !          2128:                                        a->x.ints[1] = b->x.ints[1];
        !          2129:                                        a->syms[0] = b->syms[0];
        !          2130:                                        a->x.ints[0] = b->x.ints[0];
        !          2131:                                        a->kids[0] = b->kids[0];
        !          2132:                                        a->x.ints[2] = b->x.ints[2];
        !          2133:                                        a->x.ints[3] = b->x.ints[3];
        !          2134:                                        goto L615;   /* %f $%r,%y */
        !          2135:                                }
        !          2136:                                break;
        !          2137:                        case 616:   /* li $%r,%y */
        !          2138:                                if (
        !          2139:                                b->count == 1
        !          2140:                                ) {
        !          2141:                                        if (--b->count > 0) {
        !          2142:                                                if (c=b->kids[0]) ++c->count;
        !          2143:                                                if (c=b->kids[1]) ++c->count;
        !          2144:                                        }
        !          2145:                                        a->syms[1] = b->syms[1];
        !          2146:                                        a->kids[1] = b->kids[1];
        !          2147:                                        a->x.ints[1] = b->x.ints[1];
        !          2148:                                        a->syms[0] = b->syms[0];
        !          2149:                                        a->x.ints[0] = b->x.ints[0];
        !          2150:                                        a->kids[0] = b->kids[0];
        !          2151:                                        a->x.ints[2] = b->x.ints[2];
        !          2152:                                        a->x.ints[3] = b->x.ints[3];
        !          2153:                                        goto L616;   /* li $%r,%y */
        !          2154:                                }
        !          2155:                                break;
        !          2156:                        case 617:   /* l%t $%r,%y */
        !          2157:                                if (
        !          2158:                                b->count == 1
        !          2159:                                ) {
        !          2160:                                        if (--b->count > 0) {
        !          2161:                                                if (c=b->kids[0]) ++c->count;
        !          2162:                                                if (c=b->kids[1]) ++c->count;
        !          2163:                                        }
        !          2164:                                        a->syms[1] = b->syms[1];
        !          2165:                                        a->kids[1] = b->kids[1];
        !          2166:                                        a->x.ints[1] = b->x.ints[1];
        !          2167:                                        a->syms[0] = b->syms[0];
        !          2168:                                        a->x.ints[0] = b->x.ints[0];
        !          2169:                                        a->kids[0] = b->kids[0];
        !          2170:                                        a->x.ints[2] = b->x.ints[2];
        !          2171:                                        a->x.ints[3] = b->x.ints[3];
        !          2172:                                        goto L617;   /* l%t $%r,%y */
        !          2173:                                }
        !          2174:                                break;
        !          2175:                        case 618:   /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
        !          2176:                                if (
        !          2177:                                b->count == 1
        !          2178:                                ) {
        !          2179:                                        if (--b->count > 0) {
        !          2180:                                                if (c=b->kids[0]) ++c->count;
        !          2181:                                                if (c=b->kids[1]) ++c->count;
        !          2182:                                        }
        !          2183:                                        a->syms[1] = b->syms[1];
        !          2184:                                        a->kids[1] = b->kids[1];
        !          2185:                                        a->x.ints[1] = b->x.ints[1];
        !          2186:                                        a->syms[0] = b->syms[0];
        !          2187:                                        a->x.ints[0] = b->x.ints[0];
        !          2188:                                        a->kids[0] = b->kids[0];
        !          2189:                                        a->x.ints[2] = b->x.ints[2];
        !          2190:                                        a->x.ints[3] = b->x.ints[3];
        !          2191:                                        goto L618;   /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
        !          2192:                                }
        !          2193:                                break;
        !          2194:                        case 619:   /* %f $%r,%y,%x */
        !          2195:                                if (
        !          2196:                                b->count == 1
        !          2197:                                ) {
        !          2198:                                        if (--b->count > 0) {
        !          2199:                                                if (c=b->kids[0]) ++c->count;
        !          2200:                                                if (c=b->kids[1]) ++c->count;
        !          2201:                                        }
        !          2202:                                        a->syms[1] = b->syms[1];
        !          2203:                                        a->kids[1] = b->kids[1];
        !          2204:                                        a->x.ints[1] = b->x.ints[1];
        !          2205:                                        a->syms[0] = b->syms[0];
        !          2206:                                        a->x.ints[0] = b->x.ints[0];
        !          2207:                                        a->kids[0] = b->kids[0];
        !          2208:                                        a->x.ints[2] = b->x.ints[2];
        !          2209:                                        a->x.ints[3] = b->x.ints[3];
        !          2210:                                        goto L619;   /* %f $%r,%y,%x */
        !          2211:                                }
        !          2212:                                break;
        !          2213:                        case 620:   /* l%tu $%r,%y */
        !          2214:                                if (
        !          2215:                                b->count == 1
        !          2216:                                ) {
        !          2217:                                        if (--b->count > 0) {
        !          2218:                                                if (c=b->kids[0]) ++c->count;
        !          2219:                                                if (c=b->kids[1]) ++c->count;
        !          2220:                                        }
        !          2221:                                        a->syms[1] = b->syms[1];
        !          2222:                                        a->kids[1] = b->kids[1];
        !          2223:                                        a->x.ints[1] = b->x.ints[1];
        !          2224:                                        a->syms[0] = b->syms[0];
        !          2225:                                        a->x.ints[0] = b->x.ints[0];
        !          2226:                                        a->kids[0] = b->kids[0];
        !          2227:                                        a->x.ints[2] = b->x.ints[2];
        !          2228:                                        a->x.ints[3] = b->x.ints[3];
        !          2229:                                        goto L620;   /* l%tu $%r,%y */
        !          2230:                                }
        !          2231:                                break;
        !          2232:                        case 621:   /* # nop */
        !          2233:                                if (
        !          2234:                                a->syms[RX] == rmap[I]
        !          2235:                                ) {
        !          2236:                                        --b->count;
        !          2237:                                        a->syms[2] = b->syms[2];
        !          2238:                                        a->kids[0] = 0;
        !          2239:                                        goto L621;   /* # nop */
        !          2240:                                }
        !          2241:                                break;
        !          2242:                        }
        !          2243:                        break;
        !          2244:                case 2:   /* $%c */
        !          2245:                        if (
        !          2246:                        rmcopy(a)
        !          2247:                        ) {
        !          2248:                                a->syms[2] = a->syms[0];
        !          2249:                                goto L621;   /* # nop */
        !          2250:                        }
        !          2251:                        break;
        !          2252:                }
        !          2253:                a->op = 614;
        !          2254:                break;
        !          2255:        case 615: L615:   /* %f $%r,%y */
        !          2256:                dumptree(a, 615);
        !          2257:                a->op = 615;
        !          2258:                break;
        !          2259:        case 616: L616:   /* li $%r,%y */
        !          2260:                dumptree(a, 616);
        !          2261:                if (
        !          2262:                a->x.ints[0] == 5  /* %c */
        !          2263:                && a->syms[0]->x.name == sym[1].x.name  /* 0 */
        !          2264:                ) {
        !          2265:                        setreg(a,ireg[0]);
        !          2266:                        goto L621;   /* # nop */
        !          2267:                }
        !          2268:                a->op = 616;
        !          2269:                break;
        !          2270:        case 617: L617:   /* l%t $%r,%y */
        !          2271:                dumptree(a, 617);
        !          2272:                switch (a->x.ints[0]) {
        !          2273:                case 7:   /* %c($sp) */
        !          2274:                        if (
        !          2275:                        isregvar(a->syms[0])
        !          2276:                        ) {
        !          2277:                                a->x.ints[0] = 2;  /* $%c */
        !          2278:                                goto L614;   /* move $%r,%y */
        !          2279:                        }
        !          2280:                        break;
        !          2281:                case 8:   /* ($%n) */
        !          2282:                        b = a->kids[0];
        !          2283:                        if (
        !          2284:                        b->op == 612  /* la $%r,%y */
        !          2285:                        ) {
        !          2286:                                if (--b->count > 0)
        !          2287:                                        if (c=b->kids[0]) ++c->count;
        !          2288:                                a->syms[0] = b->syms[0];
        !          2289:                                a->x.ints[0] = b->x.ints[0];
        !          2290:                                a->kids[0] = b->kids[0];
        !          2291:                                goto L617;   /* l%t $%r,%y */
        !          2292:                        }
        !          2293:                        break;
        !          2294:                }
        !          2295:                b = a->kids[0];
        !          2296:                if (
        !          2297:                a->x.ints[3] == 2  /* d */
        !          2298:                && a->x.ints[0] == 3  /* $f%n */
        !          2299:                && b->op == 632  /* l.%t $f%r,%y */
        !          2300:                && b->count == 1
        !          2301:                ) {
        !          2302:                        if (--b->count > 0)
        !          2303:                                if (c=b->kids[0]) ++c->count;
        !          2304:                        a->syms[0] = b->syms[0];
        !          2305:                        a->x.ints[0] = b->x.ints[0];
        !          2306:                        a->kids[0] = b->kids[0];
        !          2307:                        a->x.ints[3] = b->x.ints[3];
        !          2308:                        goto L617;   /* l%t $%r,%y */
        !          2309:                }
        !          2310:                a->op = 617;
        !          2311:                break;
        !          2312:        case 618: L618:   /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
        !          2313:                dumptree(a, 618);
        !          2314:                b = a->kids[0];
        !          2315:                if (
        !          2316:                a->x.ints[2] == 12  /* trunc.w */
        !          2317:                && a->x.ints[3] == 2  /* d */
        !          2318:                && a->x.ints[0] == 3  /* $f%n */
        !          2319:                && b->op == 623  /* %f.%t $f%r,%y */
        !          2320:                && b->x.ints[2] == 2  /* cvt.d */
        !          2321:                && b->x.ints[3] == 1  /* s */
        !          2322:                ) {
        !          2323:                        if (--b->count > 0)
        !          2324:                                if (c=b->kids[0]) ++c->count;
        !          2325:                        a->x.ints[3] = 1;  /* s */
        !          2326:                        a->syms[0] = b->syms[0];
        !          2327:                        a->x.ints[0] = b->x.ints[0];
        !          2328:                        a->kids[0] = b->kids[0];
        !          2329:                        goto L618;   /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
        !          2330:                }
        !          2331:                a->op = 618;
        !          2332:                break;
        !          2333:        case 619: L619:   /* %f $%r,%y,%x */
        !          2334:                dumptree(a, 619);
        !          2335:                if (
        !          2336:                a->x.ints[2] == 23  /* addu */
        !          2337:                && a->x.ints[1] == 1  /* $%n */
        !          2338:                ) {
        !          2339:                        b = a->kids[1];
        !          2340:                        if (
        !          2341:                        b->op == 612  /* la $%r,%y */
        !          2342:                        && b->x.ints[0] == 5  /* %c */
        !          2343:                        ) {
        !          2344:                                --b->count;
        !          2345:                                a->x.ints[0] = 6;  /* %c($%n) */
        !          2346:                                a->syms[0] = b->syms[0];
        !          2347:                                a->kids[1] = 0;
        !          2348:                                goto L612;   /* la $%r,%y */
        !          2349:                        }
        !          2350:                        if (
        !          2351:                        atst(a)
        !          2352:                        && b->op == 616  /* li $%r,%y */
        !          2353:                        && b->x.ints[0] == 5  /* %c */
        !          2354:                        ) {
        !          2355:                                --b->count;
        !          2356:                                a->x.ints[0] = 6;  /* %c($%n) */
        !          2357:                                a->syms[0] = b->syms[0];
        !          2358:                                a->kids[1] = 0;
        !          2359:                                goto L612;   /* la $%r,%y */
        !          2360:                        }
        !          2361:                }
        !          2362:                b = a->kids[1];
        !          2363:                if (
        !          2364:                a->x.ints[1] == 1  /* $%n */
        !          2365:                && b->op == 616  /* li $%r,%y */
        !          2366:                && b->x.ints[0] == 5  /* %c */
        !          2367:                ) {
        !          2368:                        if (--b->count > 0)
        !          2369:                                if (c=b->kids[0]) ++c->count;
        !          2370:                        a->syms[1] = b->syms[0];
        !          2371:                        a->x.ints[1] = b->x.ints[0];
        !          2372:                        a->kids[1] = b->kids[0];
        !          2373:                        goto L619;   /* %f $%r,%y,%x */
        !          2374:                }
        !          2375:                if (
        !          2376:                a->x.ints[2] == 1  /* and */
        !          2377:                && a->x.ints[0] == 1  /* $%n */
        !          2378:                && a->x.ints[1] == 5  /* %c */
        !          2379:                ) {
        !          2380:                        b = a->kids[0];
        !          2381:                        if (
        !          2382:                        a->syms[1]->x.name == sym[12].x.name  /* 65535 */
        !          2383:                        && b->op == 617  /* l%t $%r,%y */
        !          2384:                        && b->x.ints[3] == 4  /* h */
        !          2385:                        && b->count == 1
        !          2386:                        ) {
        !          2387:                                if (--b->count > 0)
        !          2388:                                        if (c=b->kids[0]) ++c->count;
        !          2389:                                a->x.ints[3] = b->x.ints[3];
        !          2390:                                a->syms[0] = b->syms[0];
        !          2391:                                a->x.ints[0] = b->x.ints[0];
        !          2392:                                a->kids[0] = b->kids[0];
        !          2393:                                goto L620;   /* l%tu $%r,%y */
        !          2394:                        }
        !          2395:                        if (
        !          2396:                        a->syms[1]->x.name == sym[11].x.name  /* 255 */
        !          2397:                        && b->op == 617  /* l%t $%r,%y */
        !          2398:                        && b->x.ints[3] == 3  /* b */
        !          2399:                        && b->count == 1
        !          2400:                        ) {
        !          2401:                                if (--b->count > 0)
        !          2402:                                        if (c=b->kids[0]) ++c->count;
        !          2403:                                a->x.ints[3] = b->x.ints[3];
        !          2404:                                a->syms[0] = b->syms[0];
        !          2405:                                a->x.ints[0] = b->x.ints[0];
        !          2406:                                a->kids[0] = b->kids[0];
        !          2407:                                goto L620;   /* l%tu $%r,%y */
        !          2408:                        }
        !          2409:                }
        !          2410:                a->op = 619;
        !          2411:                break;
        !          2412:        case 620: L620:   /* l%tu $%r,%y */
        !          2413:                dumptree(a, 620);
        !          2414:                a->op = 620;
        !          2415:                break;
        !          2416:        case 621: L621:   /* # nop */
        !          2417:                dumptree(a, 621);
        !          2418:                a->op = 621;
        !          2419:                break;
        !          2420:        case 622: L622:   /* # ret */
        !          2421:                dumptree(a, 622);
        !          2422:                a->op = 622;
        !          2423:                break;
        !          2424:        case 623: L623:   /* %f.%t $f%r,%y */
        !          2425:                dumptree(a, 623);
        !          2426:                a->op = 623;
        !          2427:                break;
        !          2428:        case 624: L624:   /* %f.%t $f%r,%y,%x */
        !          2429:                dumptree(a, 624);
        !          2430:                a->op = 624;
        !          2431:                break;
        !          2432:        case 625: L625:   /* sll $%r,%y,%x; %f $%r,$%r,%x */
        !          2433:                dumptree(a, 625);
        !          2434:                b = a->kids[0];
        !          2435:                if (
        !          2436:                a->x.ints[0] == 1  /* $%n */
        !          2437:                && a->x.ints[2] == 10  /* sra */
        !          2438:                && a->x.ints[1] == 5  /* %c */
        !          2439:                && b->op == 617  /* l%t $%r,%y */
        !          2440:                ) {
        !          2441:                        switch (b->x.ints[3]) {
        !          2442:                        case 3:   /* b */
        !          2443:                                if (
        !          2444:                                b->count == 1
        !          2445:                                && a->syms[1]->x.name == sym[10].x.name  /* 24 */
        !          2446:                                ) {
        !          2447:                                        if (--b->count > 0)
        !          2448:                                                if (c=b->kids[0]) ++c->count;
        !          2449:                                        a->x.ints[3] = b->x.ints[3];
        !          2450:                                        a->syms[0] = b->syms[0];
        !          2451:                                        a->x.ints[0] = b->x.ints[0];
        !          2452:                                        a->kids[0] = b->kids[0];
        !          2453:                                        goto L617;   /* l%t $%r,%y */
        !          2454:                                }
        !          2455:                                break;
        !          2456:                        case 4:   /* h */
        !          2457:                                if (
        !          2458:                                b->count == 1
        !          2459:                                && a->syms[1]->x.name == sym[9].x.name  /* 16 */
        !          2460:                                ) {
        !          2461:                                        if (--b->count > 0)
        !          2462:                                                if (c=b->kids[0]) ++c->count;
        !          2463:                                        a->x.ints[3] = b->x.ints[3];
        !          2464:                                        a->syms[0] = b->syms[0];
        !          2465:                                        a->x.ints[0] = b->x.ints[0];
        !          2466:                                        a->kids[0] = b->kids[0];
        !          2467:                                        goto L617;   /* l%t $%r,%y */
        !          2468:                                }
        !          2469:                                break;
        !          2470:                        }
        !          2471:                }
        !          2472:                a->op = 625;
        !          2473:                break;
        !          2474:        case 626: L626:   /* # label */
        !          2475:                dumptree(a, 626);
        !          2476:                a->op = 626;
        !          2477:                break;
        !          2478:        case 627: L627:   /* b%f %y,%x,%r */
        !          2479:                dumptree(a, 627);
        !          2480:                b = a->kids[1];
        !          2481:                if (
        !          2482:                a->x.ints[1] == 1  /* $%n */
        !          2483:                && b->op == 616  /* li $%r,%y */
        !          2484:                && b->x.ints[0] == 5  /* %c */
        !          2485:                ) {
        !          2486:                        if (--b->count > 0)
        !          2487:                                if (c=b->kids[0]) ++c->count;
        !          2488:                        a->syms[1] = b->syms[0];
        !          2489:                        a->x.ints[1] = b->x.ints[0];
        !          2490:                        a->kids[1] = b->kids[0];
        !          2491:                        goto L627;   /* b%f %y,%x,%r */
        !          2492:                }
        !          2493:                a->op = 627;
        !          2494:                break;
        !          2495:        case 628: L628:   /* b %r */
        !          2496:                dumptree(a, 628);
        !          2497:                a->op = 628;
        !          2498:                break;
        !          2499:        case 629: L629:   /* j %y */
        !          2500:                dumptree(a, 629);
        !          2501:                b = a->kids[0];
        !          2502:                if (
        !          2503:                a->x.ints[0] == 1  /* $%n */
        !          2504:                && a->kids[0] == a->kids[0]
        !          2505:                && b->count == 1
        !          2506:                && b->op == 612  /* la $%r,%y */
        !          2507:                && b->x.ints[0] == 5  /* %c */
        !          2508:                ) {
        !          2509:                        --b->count;
        !          2510:                        --b->count;
        !          2511:                        a->syms[2] = b->syms[0];
        !          2512:                        a->kids[0] = 0;
        !          2513:                        a->kids[0] = 0;
        !          2514:                        goto L628;   /* b %r */
        !          2515:                }
        !          2516:                a->op = 629;
        !          2517:                break;
        !          2518:        case 630: L630:   /* c.%f.%t %y,%x; bc1f %r */
        !          2519:                dumptree(a, 630);
        !          2520:                a->op = 630;
        !          2521:                break;
        !          2522:        case 631: L631:   /* c.%f.%t %y,%x; bc1t %r */
        !          2523:                dumptree(a, 631);
        !          2524:                a->op = 631;
        !          2525:                break;
        !          2526:        case 632: L632:   /* l.%t $f%r,%y */
        !          2527:                dumptree(a, 632);
        !          2528:                switch (a->x.ints[0]) {
        !          2529:                case 7:   /* %c($sp) */
        !          2530:                        if (
        !          2531:                        isregvar(a->syms[0])
        !          2532:                        ) {
        !          2533:                                a->x.ints[0] = 4;  /* $f%c */
        !          2534:                                goto L635;   /* mov.%t $f%r,%y */
        !          2535:                        }
        !          2536:                        break;
        !          2537:                case 8:   /* ($%n) */
        !          2538:                        b = a->kids[0];
        !          2539:                        if (
        !          2540:                        b->op == 612  /* la $%r,%y */
        !          2541:                        ) {
        !          2542:                                if (--b->count > 0)
        !          2543:                                        if (c=b->kids[0]) ++c->count;
        !          2544:                                a->syms[0] = b->syms[0];
        !          2545:                                a->x.ints[0] = b->x.ints[0];
        !          2546:                                a->kids[0] = b->kids[0];
        !          2547:                                goto L632;   /* l.%t $f%r,%y */
        !          2548:                        }
        !          2549:                        break;
        !          2550:                }
        !          2551:                a->op = 632;
        !          2552:                break;
        !          2553:        case 633: L633:   /* li.%t $f%r,%y */
        !          2554:                dumptree(a, 633);
        !          2555:                a->op = 633;
        !          2556:                break;
        !          2557:        case 634: L634:   /* mfc1.d $%r,%y */
        !          2558:                dumptree(a, 634);
        !          2559:                a->op = 634;
        !          2560:                break;
        !          2561:        case 635: L635:   /* mov.%t $f%r,%y */
        !          2562:                dumptree(a, 635);
        !          2563:                switch (a->x.ints[0]) {
        !          2564:                case 3:   /* $f%n */
        !          2565:                        b = a->kids[0];
        !          2566:                        switch (b->op) {
        !          2567:                        case 621:   /* # nop */
        !          2568:                                if (
        !          2569:                                a->syms[RX] == rmap[D]
        !          2570:                                ) {
        !          2571:                                        --b->count;
        !          2572:                                        a->syms[2] = b->syms[2];
        !          2573:                                        a->kids[0] = 0;
        !          2574:                                        goto L621;   /* # nop */
        !          2575:                                }
        !          2576:                                break;
        !          2577:                        case 623:   /* %f.%t $f%r,%y */
        !          2578:                                if (
        !          2579:                                b->count == 1
        !          2580:                                ) {
        !          2581:                                        if (--b->count > 0) {
        !          2582:                                                if (c=b->kids[0]) ++c->count;
        !          2583:                                                if (c=b->kids[1]) ++c->count;
        !          2584:                                        }
        !          2585:                                        a->syms[1] = b->syms[1];
        !          2586:                                        a->kids[1] = b->kids[1];
        !          2587:                                        a->x.ints[1] = b->x.ints[1];
        !          2588:                                        a->syms[0] = b->syms[0];
        !          2589:                                        a->x.ints[0] = b->x.ints[0];
        !          2590:                                        a->kids[0] = b->kids[0];
        !          2591:                                        a->x.ints[2] = b->x.ints[2];
        !          2592:                                        a->x.ints[3] = b->x.ints[3];
        !          2593:                                        goto L623;   /* %f.%t $f%r,%y */
        !          2594:                                }
        !          2595:                                break;
        !          2596:                        case 624:   /* %f.%t $f%r,%y,%x */
        !          2597:                                if (
        !          2598:                                b->count == 1
        !          2599:                                ) {
        !          2600:                                        if (--b->count > 0) {
        !          2601:                                                if (c=b->kids[0]) ++c->count;
        !          2602:                                                if (c=b->kids[1]) ++c->count;
        !          2603:                                        }
        !          2604:                                        a->syms[1] = b->syms[1];
        !          2605:                                        a->kids[1] = b->kids[1];
        !          2606:                                        a->x.ints[1] = b->x.ints[1];
        !          2607:                                        a->syms[0] = b->syms[0];
        !          2608:                                        a->x.ints[0] = b->x.ints[0];
        !          2609:                                        a->kids[0] = b->kids[0];
        !          2610:                                        a->x.ints[2] = b->x.ints[2];
        !          2611:                                        a->x.ints[3] = b->x.ints[3];
        !          2612:                                        goto L624;   /* %f.%t $f%r,%y,%x */
        !          2613:                                }
        !          2614:                                break;
        !          2615:                        case 632:   /* l.%t $f%r,%y */
        !          2616:                                if (
        !          2617:                                b->count == 1
        !          2618:                                ) {
        !          2619:                                        if (--b->count > 0) {
        !          2620:                                                if (c=b->kids[0]) ++c->count;
        !          2621:                                                if (c=b->kids[1]) ++c->count;
        !          2622:                                        }
        !          2623:                                        a->syms[1] = b->syms[1];
        !          2624:                                        a->kids[1] = b->kids[1];
        !          2625:                                        a->x.ints[1] = b->x.ints[1];
        !          2626:                                        a->syms[0] = b->syms[0];
        !          2627:                                        a->x.ints[0] = b->x.ints[0];
        !          2628:                                        a->kids[0] = b->kids[0];
        !          2629:                                        a->x.ints[2] = b->x.ints[2];
        !          2630:                                        a->x.ints[3] = b->x.ints[3];
        !          2631:                                        goto L632;   /* l.%t $f%r,%y */
        !          2632:                                }
        !          2633:                                break;
        !          2634:                        case 633:   /* li.%t $f%r,%y */
        !          2635:                                if (
        !          2636:                                b->count == 1
        !          2637:                                ) {
        !          2638:                                        if (--b->count > 0) {
        !          2639:                                                if (c=b->kids[0]) ++c->count;
        !          2640:                                                if (c=b->kids[1]) ++c->count;
        !          2641:                                        }
        !          2642:                                        a->syms[1] = b->syms[1];
        !          2643:                                        a->kids[1] = b->kids[1];
        !          2644:                                        a->x.ints[1] = b->x.ints[1];
        !          2645:                                        a->syms[0] = b->syms[0];
        !          2646:                                        a->x.ints[0] = b->x.ints[0];
        !          2647:                                        a->kids[0] = b->kids[0];
        !          2648:                                        a->x.ints[2] = b->x.ints[2];
        !          2649:                                        a->x.ints[3] = b->x.ints[3];
        !          2650:                                        goto L633;   /* li.%t $f%r,%y */
        !          2651:                                }
        !          2652:                                break;
        !          2653:                        case 635:   /* mov.%t $f%r,%y */
        !          2654:                                if (
        !          2655:                                b->count == 1
        !          2656:                                ) {
        !          2657:                                        if (--b->count > 0) {
        !          2658:                                                if (c=b->kids[0]) ++c->count;
        !          2659:                                                if (c=b->kids[1]) ++c->count;
        !          2660:                                        }
        !          2661:                                        a->syms[1] = b->syms[1];
        !          2662:                                        a->kids[1] = b->kids[1];
        !          2663:                                        a->x.ints[1] = b->x.ints[1];
        !          2664:                                        a->syms[0] = b->syms[0];
        !          2665:                                        a->x.ints[0] = b->x.ints[0];
        !          2666:                                        a->kids[0] = b->kids[0];
        !          2667:                                        a->x.ints[2] = b->x.ints[2];
        !          2668:                                        a->x.ints[3] = b->x.ints[3];
        !          2669:                                        goto L635;   /* mov.%t $f%r,%y */
        !          2670:                                }
        !          2671:                                break;
        !          2672:                        case 636:   /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !          2673:                                if (
        !          2674:                                b->count == 1
        !          2675:                                ) {
        !          2676:                                        if (--b->count > 0) {
        !          2677:                                                if (c=b->kids[0]) ++c->count;
        !          2678:                                                if (c=b->kids[1]) ++c->count;
        !          2679:                                        }
        !          2680:                                        a->syms[1] = b->syms[1];
        !          2681:                                        a->kids[1] = b->kids[1];
        !          2682:                                        a->x.ints[1] = b->x.ints[1];
        !          2683:                                        a->syms[0] = b->syms[0];
        !          2684:                                        a->x.ints[0] = b->x.ints[0];
        !          2685:                                        a->kids[0] = b->kids[0];
        !          2686:                                        a->x.ints[2] = b->x.ints[2];
        !          2687:                                        a->x.ints[3] = b->x.ints[3];
        !          2688:                                        goto L636;   /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !          2689:                                }
        !          2690:                                break;
        !          2691:                        }
        !          2692:                        break;
        !          2693:                case 4:   /* $f%c */
        !          2694:                        if (
        !          2695:                        rmcopy(a)
        !          2696:                        ) {
        !          2697:                                a->syms[2] = a->syms[0];
        !          2698:                                goto L621;   /* # nop */
        !          2699:                        }
        !          2700:                        break;
        !          2701:                }
        !          2702:                a->op = 635;
        !          2703:                break;
        !          2704:        case 636: L636:   /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !          2705:                dumptree(a, 636);
        !          2706:                a->op = 636;
        !          2707:                break;
        !          2708:        case 637: L637:   /* s%t $%k,%y */
        !          2709:                dumptree(a, 637);
        !          2710:                if (
        !          2711:                a->x.ints[0] == 7  /* %c($sp) */
        !          2712:                && isregvar(a->syms[0])
        !          2713:                ) {
        !          2714:                        a->x.ints[0] = 1;  /* $%n */
        !          2715:                        a->kids[0] = a->kids[2];
        !          2716:                        a->kids[2] = 0;
        !          2717:                        a->syms[2] = a->syms[0];
        !          2718:                        goto L614;   /* move $%r,%y */
        !          2719:                }
        !          2720:                if (
        !          2721:                a->x.ints[3] == 5  /* w */
        !          2722:                && a->x.ints[0] == 7  /* %c($sp) */
        !          2723:                ) {
        !          2724:                        if (
        !          2725:                        a->syms[0]->x.name == sym[1].x.name  /* 0 */
        !          2726:                        ) {
        !          2727:                                a->x.ints[0] = 1;  /* $%n */
        !          2728:                                a->syms[2] = &sym[2];  /* 4 */
        !          2729:                                a->kids[0] = a->kids[2];
        !          2730:                                a->kids[2] = 0;
        !          2731:                                goto L614;   /* move $%r,%y */
        !          2732:                        }
        !          2733:                        if (
        !          2734:                        a->syms[0]->x.name == sym[2].x.name  /* 4 */
        !          2735:                        ) {
        !          2736:                                a->x.ints[0] = 1;  /* $%n */
        !          2737:                                a->syms[2] = &sym[3];  /* 5 */
        !          2738:                                a->kids[0] = a->kids[2];
        !          2739:                                a->kids[2] = 0;
        !          2740:                                goto L614;   /* move $%r,%y */
        !          2741:                        }
        !          2742:                        if (
        !          2743:                        a->syms[0]->x.name == sym[6].x.name  /* 8 */
        !          2744:                        ) {
        !          2745:                                a->x.ints[0] = 1;  /* $%n */
        !          2746:                                a->syms[2] = &sym[4];  /* 6 */
        !          2747:                                a->kids[0] = a->kids[2];
        !          2748:                                a->kids[2] = 0;
        !          2749:                                goto L614;   /* move $%r,%y */
        !          2750:                        }
        !          2751:                        if (
        !          2752:                        a->syms[0]->x.name == sym[7].x.name  /* 12 */
        !          2753:                        ) {
        !          2754:                                a->x.ints[0] = 1;  /* $%n */
        !          2755:                                a->syms[2] = &sym[5];  /* 7 */
        !          2756:                                a->kids[0] = a->kids[2];
        !          2757:                                a->kids[2] = 0;
        !          2758:                                goto L614;   /* move $%r,%y */
        !          2759:                        }
        !          2760:                }
        !          2761:                b = a->kids[0];
        !          2762:                if (
        !          2763:                a->x.ints[0] == 8  /* ($%n) */
        !          2764:                && b->op == 612  /* la $%r,%y */
        !          2765:                ) {
        !          2766:                        if (--b->count > 0)
        !          2767:                                if (c=b->kids[0]) ++c->count;
        !          2768:                        a->syms[0] = b->syms[0];
        !          2769:                        a->x.ints[0] = b->x.ints[0];
        !          2770:                        a->kids[0] = b->kids[0];
        !          2771:                        goto L637;   /* s%t $%k,%y */
        !          2772:                }
        !          2773:                a->op = 637;
        !          2774:                break;
        !          2775:        case 638: L638:   /* s.%t $f%k,%y */
        !          2776:                dumptree(a, 638);
        !          2777:                if (
        !          2778:                a->x.ints[0] == 7  /* %c($sp) */
        !          2779:                && isregvar(a->syms[0])
        !          2780:                ) {
        !          2781:                        a->x.ints[0] = 3;  /* $f%n */
        !          2782:                        a->kids[0] = a->kids[2];
        !          2783:                        a->kids[2] = 0;
        !          2784:                        a->syms[2] = a->syms[0];
        !          2785:                        goto L635;   /* mov.%t $f%r,%y */
        !          2786:                }
        !          2787:                switch (a->x.ints[3]) {
        !          2788:                case 1:   /* s */
        !          2789:                        if (
        !          2790:                        a->x.ints[0] == 7  /* %c($sp) */
        !          2791:                        && a->syms[0]->x.name == sym[1].x.name  /* 0 */
        !          2792:                        && a->x.isvararg
        !          2793:                        ) {
        !          2794:                                a->x.ints[0] = 3;  /* $f%n */
        !          2795:                                a->syms[2] = &sym[2];  /* 4 */
        !          2796:                                a->kids[0] = a->kids[2];
        !          2797:                                a->kids[2] = 0;
        !          2798:                                goto L613;   /* mfc1 $%r,%y */
        !          2799:                        }
        !          2800:                        break;
        !          2801:                case 2:   /* d */
        !          2802:                        if (
        !          2803:                        a->x.ints[0] == 7  /* %c($sp) */
        !          2804:                        && a->syms[0]->x.name == sym[1].x.name  /* 0 */
        !          2805:                        && a->x.isvararg
        !          2806:                        ) {
        !          2807:                                a->x.ints[0] = 3;  /* $f%n */
        !          2808:                                a->syms[2] = &sym[2];  /* 4 */
        !          2809:                                a->kids[0] = a->kids[2];
        !          2810:                                a->kids[2] = 0;
        !          2811:                                goto L634;   /* mfc1.d $%r,%y */
        !          2812:                        }
        !          2813:                        break;
        !          2814:                }
        !          2815:                if (
        !          2816:                a->x.ints[0] == 7  /* %c($sp) */
        !          2817:                ) {
        !          2818:                        if (
        !          2819:                        a->syms[0]->x.name == sym[1].x.name  /* 0 */
        !          2820:                        ) {
        !          2821:                                a->x.ints[0] = 3;  /* $f%n */
        !          2822:                                a->syms[2] = &sym[7];  /* 12 */
        !          2823:                                a->kids[0] = a->kids[2];
        !          2824:                                a->kids[2] = 0;
        !          2825:                                goto L635;   /* mov.%t $f%r,%y */
        !          2826:                        }
        !          2827:                        if (
        !          2828:                        a->syms[0]->x.name == sym[2].x.name  /* 4 */
        !          2829:                        ) {
        !          2830:                                if (last)
        !          2831:                                        /* %f.%t $f%r,%y */
        !          2832:                                        /* %f.%t $f%r,%y,%x */
        !          2833:                                        /* l.%t $f%r,%y */
        !          2834:                                        /* li.%t $f%r,%y */
        !          2835:                                        /* mov.%t $f%r,%y */
        !          2836:                                        /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !          2837:                                        if ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\1\0\0\0\0\0\0\0\1\1\0\1\1\0\0\0"[last->op-608]) {
        !          2838:                                                if (
        !          2839:                                                last && last->syms[2]->x.name == sym[7].x.name  /* 12 */
        !          2840:                                                ) {
        !          2841:                                                        a->x.ints[0] = 3;  /* $f%n */
        !          2842:                                                        a->syms[2] = &sym[8];  /* 14 */
        !          2843:                                                        a->kids[0] = a->kids[2];
        !          2844:                                                        a->kids[2] = 0;
        !          2845:                                                        rewrite(last);
        !          2846:                                                        goto L635;   /* mov.%t $f%r,%y */
        !          2847:                                                }
        !          2848:                                        }
        !          2849:                        }
        !          2850:                        if (
        !          2851:                        a->syms[0]->x.name == sym[6].x.name  /* 8 */
        !          2852:                        ) {
        !          2853:                                if (last)
        !          2854:                                        /* %f.%t $f%r,%y */
        !          2855:                                        /* %f.%t $f%r,%y,%x */
        !          2856:                                        /* l.%t $f%r,%y */
        !          2857:                                        /* li.%t $f%r,%y */
        !          2858:                                        /* mov.%t $f%r,%y */
        !          2859:                                        /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
        !          2860:                                        if ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\1\0\0\0\0\0\0\0\1\1\0\1\1\0\0\0"[last->op-608]) {
        !          2861:                                                if (
        !          2862:                                                last && last->syms[2]->x.name == sym[7].x.name  /* 12 */
        !          2863:                                                ) {
        !          2864:                                                        a->x.ints[0] = 3;  /* $f%n */
        !          2865:                                                        a->syms[2] = &sym[8];  /* 14 */
        !          2866:                                                        a->kids[0] = a->kids[2];
        !          2867:                                                        a->kids[2] = 0;
        !          2868:                                                        rewrite(last);
        !          2869:                                                        goto L635;   /* mov.%t $f%r,%y */
        !          2870:                                                }
        !          2871:                                        }
        !          2872:                        }
        !          2873:                }
        !          2874:                switch (a->x.ints[3]) {
        !          2875:                case 1:   /* s */
        !          2876:                        if (
        !          2877:                        a->x.ints[0] == 7  /* %c($sp) */
        !          2878:                        ) {
        !          2879:                                if (
        !          2880:                                a->syms[0]->x.name == sym[2].x.name  /* 4 */
        !          2881:                                ) {
        !          2882:                                        a->x.ints[0] = 3;  /* $f%n */
        !          2883:                                        a->syms[2] = &sym[3];  /* 5 */
        !          2884:                                        a->kids[0] = a->kids[2];
        !          2885:                                        a->kids[2] = 0;
        !          2886:                                        goto L613;   /* mfc1 $%r,%y */
        !          2887:                                }
        !          2888:                                if (
        !          2889:                                a->syms[0]->x.name == sym[6].x.name  /* 8 */
        !          2890:                                ) {
        !          2891:                                        a->x.ints[0] = 3;  /* $f%n */
        !          2892:                                        a->syms[2] = &sym[4];  /* 6 */
        !          2893:                                        a->kids[0] = a->kids[2];
        !          2894:                                        a->kids[2] = 0;
        !          2895:                                        goto L613;   /* mfc1 $%r,%y */
        !          2896:                                }
        !          2897:                                if (
        !          2898:                                a->syms[0]->x.name == sym[7].x.name  /* 12 */
        !          2899:                                ) {
        !          2900:                                        a->x.ints[0] = 3;  /* $f%n */
        !          2901:                                        a->syms[2] = &sym[5];  /* 7 */
        !          2902:                                        a->kids[0] = a->kids[2];
        !          2903:                                        a->kids[2] = 0;
        !          2904:                                        goto L613;   /* mfc1 $%r,%y */
        !          2905:                                }
        !          2906:                        }
        !          2907:                        break;
        !          2908:                case 2:   /* d */
        !          2909:                        if (
        !          2910:                        a->x.ints[0] == 7  /* %c($sp) */
        !          2911:                        && a->syms[0]->x.name == sym[6].x.name  /* 8 */
        !          2912:                        ) {
        !          2913:                                a->x.ints[0] = 3;  /* $f%n */
        !          2914:                                a->syms[2] = &sym[4];  /* 6 */
        !          2915:                                a->kids[0] = a->kids[2];
        !          2916:                                a->kids[2] = 0;
        !          2917:                                goto L634;   /* mfc1.d $%r,%y */
        !          2918:                        }
        !          2919:                        break;
        !          2920:                }
        !          2921:                b = a->kids[0];
        !          2922:                if (
        !          2923:                a->x.ints[0] == 8  /* ($%n) */
        !          2924:                && b->op == 612  /* la $%r,%y */
        !          2925:                ) {
        !          2926:                        if (--b->count > 0)
        !          2927:                                if (c=b->kids[0]) ++c->count;
        !          2928:                        a->syms[0] = b->syms[0];
        !          2929:                        a->x.ints[0] = b->x.ints[0];
        !          2930:                        a->kids[0] = b->kids[0];
        !          2931:                        goto L638;   /* s.%t $f%k,%y */
        !          2932:                }
        !          2933:                a->op = 638;
        !          2934:                break;
        !          2935:        case 639: L639:   /* %y: */
        !          2936:                dumptree(a, 639);
        !          2937:                a->op = 639;
        !          2938:                break;
        !          2939:        default:
        !          2940:        assert(0);
        !          2941:        }
        !          2942: }
        !          2943: 

unix.superglobalmegacorp.com

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