|
|
researchv10 Norman
/* "jal $%0 # int" => ="jal %y # int" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "j $%0" => ="j %y" A="$%n" 0=0 */
/* "%0:" => ="%y:" A="%c" a=a */
/* "la $%r,%0" => ="la $%r,%y" A="%c" a=a */
/* "la $%r,%0($sp)" => ="la $%r,%y" A="%c($sp)" a=a */
/* "la $%r,%0($sp)" => ="la $%r,%y" A="%c($sp)" a=a */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "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 */
/* "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" */
/* "cvt.s.d $f%r,$f%0" => ="%f.%t $f%r,%y" C="cvt.s" D="d" A="$f%n" 0=0 */
/* "cvt.d.s $f%r,$f%0" => ="%f.%t $f%r,%y" C="cvt.d" D="s" A="$f%n" 0=0 */
/* "s.d $f%0,%c($sp)" => ="s.%t $f%k,%y" D="d" 2=0 A="%c($sp)" */
/* "s.s $f%0,%c($sp)" => ="s.%t $f%k,%y" D="s" 2=0 A="%c($sp)" */
/* "sw $%0,%c($sp)" => ="s%t $%k,%y" D="w" 2=0 A="%c($sp)" */
/* "sw $%0,%c($sp)" => ="s%t $%k,%y" D="w" 2=0 A="%c($sp)" */
/* "s.d $f%1,($%0)" => ="s.%t $f%k,%y" D="d" 2=1 A="($%n)" 0=0 */
/* "s.s $f%1,($%0)" => ="s.%t $f%k,%y" D="s" 2=1 A="($%n)" 0=0 */
/* "sw $%1,($%0)" => ="s%t $%k,%y" D="w" 2=1 A="($%n)" 0=0 */
/* "sb $%1,($%0)" => ="s%t $%k,%y" D="b" 2=1 A="($%n)" 0=0 */
/* "sw $%1,($%0)" => ="s%t $%k,%y" D="w" 2=1 A="($%n)" 0=0 */
/* "sh $%1,($%0)" => ="s%t $%k,%y" D="h" 2=1 A="($%n)" 0=0 */
/* "jal $%0 # real" => ="jal %y # real" A="$%n" 0=0 */
/* "jal $%0 # real" => ="jal %y # real" A="$%n" 0=0 */
/* "jal $%0 # int" => ="jal %y # int" A="$%n" 0=0 */
/* "jal $%0 # int" => ="jal %y # int" A="$%n" 0=0 */
/* "li.d $f%r,%0" => ="li.%t $f%r,%y" D="d" A="%c" a=a */
/* "li.s $f%r,%0" => ="li.%t $f%r,%y" D="s" A="%c" a=a */
/* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
/* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
/* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
/* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
/* "li $%r,%0" => ="li $%r,%y" A="%c" a=a */
/* "l.d $f%r,($%0)" => ="l.%t $f%r,%y" D="d" A="($%n)" 0=0 */
/* "l.s $f%r,($%0)" => ="l.%t $f%r,%y" D="s" A="($%n)" 0=0 */
/* "lw $%r,($%0)" => ="l%t $%r,%y" D="w" A="($%n)" 0=0 */
/* "lb $%r,($%0)" => ="l%t $%r,%y" D="b" A="($%n)" 0=0 */
/* "lw $%r,($%0)" => ="l%t $%r,%y" D="w" A="($%n)" 0=0 */
/* "lh $%r,($%0)" => ="l%t $%r,%y" D="h" A="($%n)" 0=0 */
/* "mov.d $f%r,$f%0" => ="mov.%t $f%r,%y" D="d" A="$f%n" 0=0 */
/* "mov.s $f%r,$f%0" => ="mov.%t $f%r,%y" D="s" A="$f%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "move $%r,$%0" => ="move $%r,%y" A="$%n" 0=0 */
/* "neg.d $f%r,$f%0" => ="%f.%t $f%r,%y" C="neg" D="d" A="$f%n" 0=0 */
/* "neg.s $f%r,$f%0" => ="%f.%t $f%r,%y" C="neg" D="s" A="$f%n" 0=0 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "negu $%r,$%0" => ="%f $%r,%y" C="negu" A="$%n" 0=0 */
/* "not $%r,$%0" => ="%f $%r,%y" C="not" A="$%n" 0=0 */
/* "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" */
/* "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" */
/* "and $%r,$%0,255" => ="%f $%r,%y,%x" C="and" A="$%n" 0=0 B="%c" b="255" */
/* "and $%r,$%0,65535" => ="%f $%r,%y,%x" C="and" A="$%n" 0=0 B="%c" b="65535" */
/* "divu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="divu" A="$%n" 0=0 B="$%n" 1=1 */
/* "srl $%r,$%0,$%1" => ="%f $%r,%y,%x" C="srl" A="$%n" 0=0 B="$%n" 1=1 */
/* "remu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="remu" A="$%n" 0=0 B="$%n" 1=1 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "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 */
/* "bleu $%0,$%1,%0" => ="b%f %y,%x,%r" C="leu" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "bge $%0,$%1,%0" => ="b%f %y,%x,%r" C="ge" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "blt $%0,$%1,%0" => ="b%f %y,%x,%r" C="lt" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "ble $%0,$%1,%0" => ="b%f %y,%x,%r" C="le" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "beq $%0,$%1,%0" => ="b%f %y,%x,%r" C="eq" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "bgtu $%0,$%1,%0" => ="b%f %y,%x,%r" C="gtu" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "bltu $%0,$%1,%0" => ="b%f %y,%x,%r" C="ltu" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "bne $%0,$%1,%0" => ="b%f %y,%x,%r" C="ne" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "bgt $%0,$%1,%0" => ="b%f %y,%x,%r" C="gt" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "bgeu $%0,$%1,%0" => ="b%f %y,%x,%r" C="geu" A="$%n" 0=0 B="$%n" 1=1 c=a */
/* "rem $%r,$%0,$%1" => ="%f $%r,%y,%x" C="rem" A="$%n" 0=0 B="$%n" 1=1 */
/* "rem $%r,$%0,$%1" => ="%f $%r,%y,%x" C="rem" A="$%n" 0=0 B="$%n" 1=1 */
/* "mul $%r,$%0,$%1" => ="%f $%r,%y,%x" C="mul" A="$%n" 0=0 B="$%n" 1=1 */
/* "mul $%r,$%0,$%1" => ="%f $%r,%y,%x" C="mul" A="$%n" 0=0 B="$%n" 1=1 */
/* "xor $%r,$%0,$%1" => ="%f $%r,%y,%x" C="xor" A="$%n" 0=0 B="$%n" 1=1 */
/* "div $%r,$%0,$%1" => ="%f $%r,%y,%x" C="div" A="$%n" 0=0 B="$%n" 1=1 */
/* "div $%r,$%0,$%1" => ="%f $%r,%y,%x" C="div" A="$%n" 0=0 B="$%n" 1=1 */
/* "sll $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sll" A="$%n" 0=0 B="$%n" 1=1 */
/* "sll $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sll" A="$%n" 0=0 B="$%n" 1=1 */
/* "addu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="addu" A="$%n" 0=0 B="$%n" 1=1 */
/* "addu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="addu" A="$%n" 0=0 B="$%n" 1=1 */
/* "addu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="addu" A="$%n" 0=0 B="$%n" 1=1 */
/* "and $%r,$%0,$%1" => ="%f $%r,%y,%x" C="and" A="$%n" 0=0 B="$%n" 1=1 */
/* "subu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="subu" A="$%n" 0=0 B="$%n" 1=1 */
/* "subu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="subu" A="$%n" 0=0 B="$%n" 1=1 */
/* "subu $%r,$%0,$%1" => ="%f $%r,%y,%x" C="subu" A="$%n" 0=0 B="$%n" 1=1 */
/* "sra $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sra" A="$%n" 0=0 B="$%n" 1=1 */
/* "sra $%r,$%0,$%1" => ="%f $%r,%y,%x" C="sra" A="$%n" 0=0 B="$%n" 1=1 */
/* "or $%r,$%0,$%1" => ="%f $%r,%y,%x" C="or" A="$%n" 0=0 B="$%n" 1=1 */
/* "j $%0" => ="j %y" A="$%n" 0=0 */
/* "la $%r,%c" => ="la $%r,%y" 0A="%c" */
/* "move $%r,$%c" => ="move $%r,%y" A="$%c" */
/* "mov.%t $f%r,$f%c" => ="mov.%t $f%r,%y" A="$f%c" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "sw $%k,0($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="0" */
/* "move $4,$%n" => ="move $%r,%y" c="4" A="$%n" */
/* "sw $%k,4($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="4" */
/* "move $5,$%n" => ="move $%r,%y" c="5" A="$%n" */
/* "sw $%k,8($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="8" */
/* "move $6,$%n" => ="move $%r,%y" c="6" A="$%n" */
/* "sw $%k,12($sp)" => ="s%t $%k,%y" D="w" A="%c($sp)" a="12" */
/* "move $7,$%n" => ="move $%r,%y" c="7" A="$%n" */
/* "s.d $f%k,0($sp)" => ="s.%t $f%k,%y" D="d" A="%c($sp)" a="0" */
/* "mfc1.d $4,$f%n" => ="mfc1.d $%r,%y" c="4" A="$f%n" */
/* "s.s $f%k,0($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="0" */
/* "mfc1 $4,$f%n" => ="mfc1 $%r,%y" c="4" A="$f%n" */
/* "s.%t $f%k,0($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="0" */
/* "mov.%t $f12,$f%n" => ="mov.%t $f%r,%y" c="12" A="$f%n" */
/* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,4($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="4" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.%t $f%k,8($sp)" => ="s.%t $f%k,%y" A="%c($sp)" a="8" */
/* "mov.%t $f14,$f%n" => ="mov.%t $f%r,%y" c="14" A="$f%n" */
/* "s.d $f%k,8($sp)" => ="s.%t $f%k,%y" D="d" A="%c($sp)" a="8" */
/* "mfc1.d $6,$f%n" => ="mfc1.d $%r,%y" c="6" A="$f%n" */
/* "s.s $f%k,4($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="4" */
/* "mfc1 $5,$f%n" => ="mfc1 $%r,%y" c="5" A="$f%n" */
/* "s.s $f%k,8($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="8" */
/* "mfc1 $6,$f%n" => ="mfc1 $%r,%y" c="6" A="$f%n" */
/* "s.s $f%k,12($sp)" => ="s.%t $f%k,%y" D="s" A="%c($sp)" a="12" */
/* "mfc1 $7,$f%n" => ="mfc1 $%r,%y" c="7" A="$f%n" */
/* "mov.%t $f%r,$f%c" => ="mov.%t $f%r,%y" A="$f%c" */
/* "move $%r,$%c" => ="move $%r,%y" A="$%c" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "ld $%r,$f%n" => ="l%t $%r,%y" D="d" A="$f%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "mov.%t $f%r,$f%n" => ="mov.%t $f%r,%y" A="$f%n" */
/* "jal $%n # real" => ="jal %y # real" A="$%n" */
/* "la $%r,%c" => ="la $%r,%y" 0A="%c" */
/* "jal $%n # int" => ="jal %y # int" A="$%n" */
/* "la $%r,%c" => ="la $%r,%y" 0A="%c" */
/* "addu $%r,%y,$%n" => ="%f $%r,%y,%x" C="addu" B="$%n" */
/* "la $%r,%c" => ="la $%r,%y" 1A="%c" */
/* "la $%r,%c($%n)" => ="la $%r,%y" A="%c($%n)" */
/* "addu $%r,%y,$%n" => ="%f $%r,%y,%x" C="addu" B="$%n" */
/* "li $%r,%c" => ="li $%r,%y" 1A="%c" */
/* "la $%r,%c($%n)" => ="la $%r,%y" A="%c($%n)" */
/* "li $%r,%c" => ="li $%r,%y" 1A="%c" */
/* "li $%r,%c" => ="li $%r,%y" 1A="%c" */
/* "li $%r,0" => ="li $%r,%y" A="%c" a="0" */
/* "sll $%r,$%n,%x; sra $%r,$%r,%c" => ="sll $%r,%y,%x; %f $%r,$%r,%x" A="$%n" C="sra" B="%c" */
/* "lh $%r,%y" => ="l%t $%r,%y" 0D="h" */
/* "sll $%r,$%n,%x; sra $%r,$%r,%c" => ="sll $%r,%y,%x; %f $%r,$%r,%x" A="$%n" C="sra" B="%c" */
/* "lb $%r,%y" => ="l%t $%r,%y" 0D="b" */
/* "and $%r,$%n,65535" => ="%f $%r,%y,%x" C="and" A="$%n" B="%c" b="65535" */
/* "lh $%r,%y" => ="l%t $%r,%y" 0D="h" */
/* "and $%r,$%n,255" => ="%f $%r,%y,%x" C="and" A="$%n" B="%c" b="255" */
/* "lb $%r,%y" => ="l%t $%r,%y" 0D="b" */
/* "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" */
/* "cvt.d.s $f%r,%y" => ="%f.%t $f%r,%y" 0C="cvt.d" 0D="s" */
/* "move $%r,$%n" => ="move $%r,%y" A="$%n" */
/* "{sll|srl|sra} $%r,%y,%c" => ="%f $%r,%y,%x" C=@TMP1168 B="%c" */
#include "pseudos.c"
static char *shortopcodes[] = {
/* 608 */ "jal %y # int",
/* 609 */ "jal %y # real",
/* 610 */ "# asgnb",
/* 611 */ "# argb",
/* 612 */ "la $%r,%y",
/* 613 */ "mfc1 $%r,%y",
/* 614 */ "move $%r,%y",
/* 615 */ "%f $%r,%y",
/* 616 */ "li $%r,%y",
/* 617 */ "l%t $%r,%y",
/* 618 */ "%f.%t $f2,%y,$%r; mfc1 $%r,$f2",
/* 619 */ "%f $%r,%y,%x",
/* 620 */ "l%tu $%r,%y",
/* 621 */ "# nop",
/* 622 */ "# ret",
/* 623 */ "%f.%t $f%r,%y",
/* 624 */ "%f.%t $f%r,%y,%x",
/* 625 */ "sll $%r,%y,%x; %f $%r,$%r,%x",
/* 626 */ "# label",
/* 627 */ "b%f %y,%x,%r",
/* 628 */ "b %r",
/* 629 */ "j %y",
/* 630 */ "c.%f.%t %y,%x; bc1f %r",
/* 631 */ "c.%f.%t %y,%x; bc1t %r",
/* 632 */ "l.%t $f%r,%y",
/* 633 */ "li.%t $f%r,%y",
/* 634 */ "mfc1.d $%r,%y",
/* 635 */ "mov.%t $f%r,%y",
/* 636 */ "mtc1 %y,$f%r; %f.%t $f%r,$f%r",
/* 637 */ "s%t $%k,%y",
/* 638 */ "s.%t $f%k,%y",
/* 639 */ "%y:",
};
static char *asmstr0[] = {
"(DUMMY)",
"$%n",
"$%c",
"$f%n",
"$f%c",
"%c",
"%c($%n)",
"%c($sp)",
"($%n)",
};
static char *asmstr2[] = {
"(DUMMY)",
"and",
"cvt.d",
"cvt.s",
"eq",
"mul",
"ne",
"not",
"or",
"sll",
"sra",
"srl",
"trunc.w",
"xor",
"add",
"div",
"ge",
"gt",
"le",
"lt",
"neg",
"rem",
"sub",
"addu",
"divu",
"geu",
"gtu",
"leu",
"ltu",
"negu",
"remu",
"subu",
};
static char *asmstr3[] = {
"(DUMMY)",
"s",
"d",
"b",
"h",
"w",
};
static struct symbol sym[] = {
{{"(DUMMY)"}},
{{"0"}},
{{"4"}},
{{"5"}},
{{"6"}},
{{"7"}},
{{"8"}},
{{"12"}},
{{"14"}},
{{"16"}},
{{"24"}},
{{"255"}},
{{"65535"}},
};
dclproto(static void rewrite,(Node));
dclproto(static void emit,(Node));
static void initgen() {
opcodes = shortopcodes-608;
IR->x.rewrite = rewrite;
IR->emit = emit;
asmstr[0] = asmstr0;
asmstr[1] = asmstr0;
asmstr[2] = asmstr2;
asmstr[3] = asmstr3;
sym[1].x.name = string("0");
sym[2].x.name = string("4");
sym[3].x.name = string("5");
sym[4].x.name = string("6");
sym[5].x.name = string("7");
sym[6].x.name = string("8");
sym[7].x.name = string("12");
sym[8].x.name = string("14");
sym[9].x.name = string("16");
sym[10].x.name = string("24");
sym[11].x.name = string("255");
sym[12].x.name = string("65535");
}
dclproto(static char *emit0,(char *, Node, int));
static char *emit0(rbp, a, n)
register char *rbp;
register Node a;
register int n;
{
register char *cp;
assert(a->x.ints[n]);
switch (a->x.ints[n]) {
case 0: /* (DUMMY) */
*rbp++ = '(';
*rbp++ = 'D';
*rbp++ = 'U';
*rbp++ = 'M';
*rbp++ = 'M';
*rbp++ = 'Y';
*rbp++ = ')';
return rbp;
case 1: /* $%n */
*rbp++ = '$';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 2: /* $%c */
*rbp++ = '$';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 3: /* $f%n */
*rbp++ = '$';
*rbp++ = 'f';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 4: /* $f%c */
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 5: /* %c */
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
return rbp;
case 6: /* %c($%n) */
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '(';
*rbp++ = '$';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ')';
return rbp;
case 7: /* %c($sp) */
assert(a->syms[n+0]);
for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = '(';
*rbp++ = '$';
*rbp++ = 's';
*rbp++ = 'p';
*rbp++ = ')';
return rbp;
case 8: /* ($%n) */
*rbp++ = '(';
*rbp++ = '$';
assert(a->kids[n+0]);
assert(a->kids[n+0]->x.registered);
assert(a->kids[n+0]->syms[RX]);
for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ')';
return rbp;
}
return rbp;
}
static void emit(a)
register Node a;
{
register char *cp, *rbp;
for (; a; a = a->x.next) {
switch (a->op) {
case 608: L608: /* jal %y # int */
rbp = bp;
*rbp++ = 'j';
*rbp++ = 'a';
*rbp++ = 'l';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ' ';
*rbp++ = ' ';
*rbp++ = '#';
*rbp++ = ' ';
*rbp++ = 'i';
*rbp++ = 'n';
*rbp++ = 't';
bp = rbp;
outs("\n");
break;
case 609: L609: /* jal %y # real */
rbp = bp;
*rbp++ = 'j';
*rbp++ = 'a';
*rbp++ = 'l';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ' ';
*rbp++ = ' ';
*rbp++ = '#';
*rbp++ = ' ';
*rbp++ = 'r';
*rbp++ = 'e';
*rbp++ = 'a';
*rbp++ = 'l';
bp = rbp;
outs("\n");
break;
case 610: L610: /* # asgnb */
(*IR->x.emitspecial)(a);
break;
case 611: L611: /* # argb */
(*IR->x.emitspecial)(a);
break;
case 612: L612: /* la $%r,%y */
rbp = bp;
*rbp++ = 'l';
*rbp++ = 'a';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 613: L613: /* mfc1 $%r,%y */
rbp = bp;
*rbp++ = 'm';
*rbp++ = 'f';
*rbp++ = 'c';
*rbp++ = '1';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 614: L614: /* move $%r,%y */
rbp = bp;
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
*rbp++ = 'e';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 615: L615: /* %f $%r,%y */
rbp = bp;
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 616: L616: /* li $%r,%y */
rbp = bp;
*rbp++ = 'l';
*rbp++ = 'i';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 617: L617: /* l%t $%r,%y */
rbp = bp;
*rbp++ = 'l';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 618: L618: /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
rbp = bp;
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
*rbp++ = '2';
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'm';
*rbp++ = 'f';
*rbp++ = 'c';
*rbp++ = '1';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
*rbp++ = '$';
*rbp++ = 'f';
*rbp++ = '2';
bp = rbp;
outs("\n");
break;
case 619: L619: /* %f $%r,%y,%x */
rbp = bp;
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp;
outs("\n");
break;
case 620: L620: /* l%tu $%r,%y */
rbp = bp;
*rbp++ = 'l';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = 'u';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 621: L621: /* # nop */
(*IR->x.emitspecial)(a);
break;
case 622: L622: /* # ret */
(*IR->x.emitspecial)(a);
break;
case 623: L623: /* %f.%t $f%r,%y */
rbp = bp;
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 624: L624: /* %f.%t $f%r,%y,%x */
rbp = bp;
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp;
outs("\n");
break;
case 625: L625: /* sll $%r,%y,%x; %f $%r,$%r,%x */
rbp = bp;
*rbp++ = 's';
*rbp++ = 'l';
*rbp++ = 'l';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp;
outs("\n");
break;
case 626: L626: /* # label */
(*IR->x.emitspecial)(a);
break;
case 627: L627: /* b%f %y,%x,%r */
rbp = bp;
*rbp++ = 'b';
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
*rbp++ = ',';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
bp = rbp;
outs("\n");
break;
case 628: L628: /* b %r */
rbp = bp;
*rbp++ = 'b';
*rbp++ = ' ';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
bp = rbp;
outs("\n");
break;
case 629: L629: /* j %y */
rbp = bp;
*rbp++ = 'j';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 630: L630: /* c.%f.%t %y,%x; bc1f %r */
rbp = bp;
*rbp++ = 'c';
*rbp++ = '.';
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'b';
*rbp++ = 'c';
*rbp++ = '1';
*rbp++ = 'f';
*rbp++ = ' ';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
bp = rbp;
outs("\n");
break;
case 631: L631: /* c.%f.%t %y,%x; bc1t %r */
rbp = bp;
*rbp++ = 'c';
*rbp++ = '.';
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
rbp = emit0(rbp, a, 1);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
*rbp++ = 'b';
*rbp++ = 'c';
*rbp++ = '1';
*rbp++ = 't';
*rbp++ = ' ';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
bp = rbp;
outs("\n");
break;
case 632: L632: /* l.%t $f%r,%y */
rbp = bp;
*rbp++ = 'l';
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 633: L633: /* li.%t $f%r,%y */
rbp = bp;
*rbp++ = 'l';
*rbp++ = 'i';
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 634: L634: /* mfc1.d $%r,%y */
rbp = bp;
*rbp++ = 'm';
*rbp++ = 'f';
*rbp++ = 'c';
*rbp++ = '1';
*rbp++ = '.';
*rbp++ = 'd';
*rbp++ = ' ';
*rbp++ = '$';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 635: L635: /* mov.%t $f%r,%y */
rbp = bp;
*rbp++ = 'm';
*rbp++ = 'o';
*rbp++ = 'v';
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 636: L636: /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
rbp = bp;
*rbp++ = 'm';
*rbp++ = 't';
*rbp++ = 'c';
*rbp++ = '1';
*rbp++ = ' ';
rbp = emit0(rbp, a, 0);
*rbp++ = ',';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
bp = rbp; outs(";"); rbp = bp;
*rbp++ = ' ';
assert(a->x.ints[2]);
for (cp = asmstr2[a->x.ints[2]]; *cp; *rbp++ = *cp++);
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->syms[2]);
for (cp = a->syms[2]->x.name; *cp; *rbp++ = *cp++);
bp = rbp;
outs("\n");
break;
case 637: L637: /* s%t $%k,%y */
rbp = bp;
*rbp++ = 's';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
assert(a->kids[2]);
assert(a->kids[2]->x.registered);
assert(a->kids[2]->syms[RX]);
for (cp = a->kids[2]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 638: L638: /* s.%t $f%k,%y */
rbp = bp;
*rbp++ = 's';
*rbp++ = '.';
assert(a->x.ints[3]);
cp = asmstr3[a->x.ints[3]];
*rbp++ = cp[0];
*rbp++ = ' ';
*rbp++ = '$';
*rbp++ = 'f';
assert(a->kids[2]);
assert(a->kids[2]->x.registered);
assert(a->kids[2]->syms[RX]);
for (cp = a->kids[2]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
*rbp++ = ',';
rbp = emit0(rbp, a, 0);
bp = rbp;
outs("\n");
break;
case 639: L639: /* %y: */
rbp = bp;
rbp = emit0(rbp, a, 0);
*rbp++ = ':';
bp = rbp;
outs("\n");
break;
}
}
}
static void final(a)
register Node a;
{
register int s;
switch (a->op) {
case 608: L608: /* jal %y # int */
dumptree(a, 608);
spill(0x000f0ff3, FREG, a); spill(0x0300ff00, IREG, a);
a->op = 608;
break;
case 609: L609: /* jal %y # real */
dumptree(a, 609);
spill(0x0300ff04, IREG, a); spill(0x000f0ff0, FREG, a);
a->op = 609;
break;
case 610: L610: /* # asgnb */
dumptree(a, 610);
spill(0x10c, IREG, a);
a->op = 610;
return;
case 611: L611: /* # argb */
dumptree(a, 611);
spill(0x10c, IREG, a);
a->op = 611;
return;
case 612: L612: /* la $%r,%y */
dumptree(a, 612);
a->op = 612;
break;
case 613: L613: /* mfc1 $%r,%y */
dumptree(a, 613);
a->op = 613;
break;
case 614: L614: /* move $%r,%y */
dumptree(a, 614);
if (
a->x.ints[0] == 1 /* $%n */
&& a->syms[2] == a->kids[0]->syms[2]
) {
goto L621; /* # nop */
}
a->op = 614;
break;
case 615: L615: /* %f $%r,%y */
dumptree(a, 615);
a->op = 615;
break;
case 616: L616: /* li $%r,%y */
dumptree(a, 616);
a->op = 616;
break;
case 617: L617: /* l%t $%r,%y */
dumptree(a, 617);
a->op = 617;
break;
case 618: L618: /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
dumptree(a, 618);
a->op = 618;
break;
case 619: L619: /* %f $%r,%y,%x */
dumptree(a, 619);
if (
"\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> */
&& a->x.ints[1] == 5 /* %c */
&& lop(a,1,5)
) {
goto L619; /* %f $%r,%y,%x */
}
a->op = 619;
break;
case 620: L620: /* l%tu $%r,%y */
dumptree(a, 620);
a->op = 620;
break;
case 621: L621: /* # nop */
dumptree(a, 621);
a->op = 621;
return;
case 622: L622: /* # ret */
dumptree(a, 622);
a->op = 622;
return;
case 623: L623: /* %f.%t $f%r,%y */
dumptree(a, 623);
a->op = 623;
break;
case 624: L624: /* %f.%t $f%r,%y,%x */
dumptree(a, 624);
a->op = 624;
break;
case 625: L625: /* sll $%r,%y,%x; %f $%r,$%r,%x */
dumptree(a, 625);
a->op = 625;
break;
case 626: L626: /* # label */
dumptree(a, 626);
a->op = 626;
return;
case 627: L627: /* b%f %y,%x,%r */
dumptree(a, 627);
a->op = 627;
break;
case 628: L628: /* b %r */
dumptree(a, 628);
a->op = 628;
break;
case 629: L629: /* j %y */
dumptree(a, 629);
a->op = 629;
break;
case 630: L630: /* c.%f.%t %y,%x; bc1f %r */
dumptree(a, 630);
a->op = 630;
break;
case 631: L631: /* c.%f.%t %y,%x; bc1t %r */
dumptree(a, 631);
a->op = 631;
break;
case 632: L632: /* l.%t $f%r,%y */
dumptree(a, 632);
a->op = 632;
break;
case 633: L633: /* li.%t $f%r,%y */
dumptree(a, 633);
a->op = 633;
break;
case 634: L634: /* mfc1.d $%r,%y */
dumptree(a, 634);
a->op = 634;
break;
case 635: L635: /* mov.%t $f%r,%y */
dumptree(a, 635);
a->op = 635;
break;
case 636: L636: /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
dumptree(a, 636);
a->op = 636;
break;
case 637: L637: /* s%t $%k,%y */
dumptree(a, 637);
a->op = 637;
break;
case 638: L638: /* s.%t $f%k,%y */
dumptree(a, 638);
a->op = 638;
break;
case 639: L639: /* %y: */
dumptree(a, 639);
a->op = 639;
break;
}
}
static void rewrite(a)
register Node a;
{
register Node b, c;
register int s;
assert(a);
switch (a->op) {
case 17: L17: /* CNSTF */
dumptree(a, a->op);
setreg(a, rmap[F]);
a->x.ints[0] = 5; /* %c */
a->x.ints[3] = 1; /* s */
goto L633; /* li.%t $f%r,%y */
case 18: L18: /* CNSTD */
dumptree(a, a->op);
setreg(a, rmap[D]);
a->x.ints[0] = 5; /* %c */
a->x.ints[3] = 2; /* d */
goto L633; /* li.%t $f%r,%y */
case 19: L19: /* CNSTC */
dumptree(a, a->op);
setreg(a, rmap[C]);
a->x.ints[0] = 5; /* %c */
goto L616; /* li $%r,%y */
case 20: L20: /* CNSTS */
dumptree(a, a->op);
setreg(a, rmap[S]);
a->x.ints[0] = 5; /* %c */
goto L616; /* li $%r,%y */
case 21: L21: /* CNSTI */
dumptree(a, a->op);
setreg(a, rmap[I]);
a->x.ints[0] = 5; /* %c */
goto L616; /* li $%r,%y */
case 22: L22: /* CNSTU */
dumptree(a, a->op);
setreg(a, rmap[U]);
a->x.ints[0] = 5; /* %c */
goto L616; /* li $%r,%y */
case 23: L23: /* CNSTP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[0] = 5; /* %c */
goto L616; /* li $%r,%y */
case 33: L33: /* ARGF */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 7; /* %c($sp) */
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[3] = 1; /* s */
goto L638; /* s.%t $f%k,%y */
case 34: L34: /* ARGD */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 7; /* %c($sp) */
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[3] = 2; /* d */
goto L638; /* s.%t $f%k,%y */
case 37: L37: /* ARGI */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 7; /* %c($sp) */
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[3] = 5; /* w */
goto L637; /* s%t $%k,%y */
case 39: L39: /* ARGP */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 7; /* %c($sp) */
a->kids[2] = a->kids[0];
a->kids[0] = 0;
a->x.ints[3] = 5; /* w */
goto L637; /* s%t $%k,%y */
case 41: L41: /* ARGB */
dumptree(a, a->op);
rewrite(a->kids[0]);
goto L611; /* # argb */
case 49: L49: /* ASGNF */
dumptree(a, a->op);
aset(a,0);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[0] = 8; /* ($%n) */
a->kids[2] = a->kids[1];
a->kids[1] = 0;
a->x.ints[3] = 1; /* s */
goto L638; /* s.%t $f%k,%y */
case 50: L50: /* ASGND */
dumptree(a, a->op);
aset(a,0);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[0] = 8; /* ($%n) */
a->kids[2] = a->kids[1];
a->kids[1] = 0;
a->x.ints[3] = 2; /* d */
goto L638; /* s.%t $f%k,%y */
case 51: L51: /* ASGNC */
dumptree(a, a->op);
aset(a,0);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[0] = 8; /* ($%n) */
a->kids[2] = a->kids[1];
a->kids[1] = 0;
a->x.ints[3] = 3; /* b */
goto L637; /* s%t $%k,%y */
case 52: L52: /* ASGNS */
dumptree(a, a->op);
aset(a,0);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[0] = 8; /* ($%n) */
a->kids[2] = a->kids[1];
a->kids[1] = 0;
a->x.ints[3] = 4; /* h */
goto L637; /* s%t $%k,%y */
case 53: L53: /* ASGNI */
dumptree(a, a->op);
aset(a,0);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[0] = 8; /* ($%n) */
a->kids[2] = a->kids[1];
a->kids[1] = 0;
a->x.ints[3] = 5; /* w */
goto L637; /* s%t $%k,%y */
case 55: L55: /* ASGNP */
dumptree(a, a->op);
aset(a,0);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[0] = 8; /* ($%n) */
a->kids[2] = a->kids[1];
a->kids[1] = 0;
a->x.ints[3] = 5; /* w */
goto L637; /* s%t $%k,%y */
case 57: L57: /* ASGNB */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
goto L610; /* # asgnb */
case 65: L65: /* INDIRF */
dumptree(a, a->op);
setreg(a, rmap[F]);
aset(a,0);
rewrite(a->kids[0]);
a->x.ints[0] = 8; /* ($%n) */
a->x.ints[3] = 1; /* s */
goto L632; /* l.%t $f%r,%y */
case 66: L66: /* INDIRD */
dumptree(a, a->op);
setreg(a, rmap[D]);
aset(a,0);
rewrite(a->kids[0]);
a->x.ints[0] = 8; /* ($%n) */
a->x.ints[3] = 2; /* d */
goto L632; /* l.%t $f%r,%y */
case 67: L67: /* INDIRC */
dumptree(a, a->op);
setreg(a, rmap[C]);
aset(a,0);
rewrite(a->kids[0]);
a->x.ints[0] = 8; /* ($%n) */
a->x.ints[3] = 3; /* b */
goto L617; /* l%t $%r,%y */
case 68: L68: /* INDIRS */
dumptree(a, a->op);
setreg(a, rmap[S]);
aset(a,0);
rewrite(a->kids[0]);
a->x.ints[0] = 8; /* ($%n) */
a->x.ints[3] = 4; /* h */
goto L617; /* l%t $%r,%y */
case 69: L69: /* INDIRI */
dumptree(a, a->op);
setreg(a, rmap[I]);
aset(a,0);
rewrite(a->kids[0]);
a->x.ints[0] = 8; /* ($%n) */
a->x.ints[3] = 5; /* w */
goto L617; /* l%t $%r,%y */
case 71: L71: /* INDIRP */
dumptree(a, a->op);
setreg(a, rmap[P]);
aset(a,0);
rewrite(a->kids[0]);
a->x.ints[0] = 8; /* ($%n) */
a->x.ints[3] = 5; /* w */
goto L617; /* l%t $%r,%y */
case 73: L73: /* INDIRB */
dumptree(a, a->op);
setreg(a, rmap[P]);
aset(a,0);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 85: L85: /* CVCI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[1] = 5; /* %c */
a->x.ints[2] = 10; /* sra */
a->syms[1] = &sym[10]; /* 24 */
a->x.ints[1] = 5; /* %c */
a->x.ints[0] = 1; /* $%n */
goto L625; /* sll $%r,%y,%x; %f $%r,$%r,%x */
case 86: L86: /* CVCU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->syms[1] = &sym[11]; /* 255 */
a->x.ints[1] = 5; /* %c */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 1; /* and */
goto L619; /* %f $%r,%y,%x */
case 97: L97: /* CVDF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 3; /* cvt.s */
goto L623; /* %f.%t $f%r,%y */
case 101: L101: /* CVDI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 12; /* trunc.w */
goto L618; /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
case 114: L114: /* CVFD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 2; /* cvt.d */
goto L623; /* %f.%t $f%r,%y */
case 130: L130: /* CVID */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[3] = 5; /* w */
a->x.ints[2] = 2; /* cvt.d */
a->x.ints[0] = 1; /* $%n */
goto L636; /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
case 131: L131: /* CVIC */
dumptree(a, a->op);
setreg(a, rmap[C]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 132: L132: /* CVIS */
dumptree(a, a->op);
setreg(a, rmap[S]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 134: L134: /* CVIU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 150: L150: /* CVPU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 165: L165: /* CVSI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[1] = 5; /* %c */
a->x.ints[2] = 10; /* sra */
a->syms[1] = &sym[9]; /* 16 */
a->x.ints[1] = 5; /* %c */
a->x.ints[0] = 1; /* $%n */
goto L625; /* sll $%r,%y,%x; %f $%r,$%r,%x */
case 166: L166: /* CVSU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->syms[1] = &sym[12]; /* 65535 */
a->x.ints[1] = 5; /* %c */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 1; /* and */
goto L619; /* %f $%r,%y,%x */
case 179: L179: /* CVUC */
dumptree(a, a->op);
setreg(a, rmap[C]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 180: L180: /* CVUS */
dumptree(a, a->op);
setreg(a, rmap[S]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 181: L181: /* CVUI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 183: L183: /* CVUP */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L614; /* move $%r,%y */
case 193: L193: /* NEGF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 20; /* neg */
goto L623; /* %f.%t $f%r,%y */
case 194: L194: /* NEGD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 20; /* neg */
goto L623; /* %f.%t $f%r,%y */
case 197: L197: /* NEGI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 29; /* negu */
goto L615; /* %f $%r,%y */
case 209: L209: /* CALLF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
setreg(a,f0);
goto L609; /* jal %y # real */
case 210: L210: /* CALLD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
setreg(a,f0);
goto L609; /* jal %y # real */
case 213: L213: /* CALLI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
setreg(a,ireg[2]);
goto L608; /* jal %y # int */
case 216: L216: /* CALLV */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
setreg(a,ireg[2]);
goto L608; /* jal %y # int */
case 217: L217: /* CALLB */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[0] = 1; /* $%n */
setreg(a,ireg[2]),rtarget(a,1,ireg[4]);
goto L608; /* jal %y # int */
case 225: L225: /* LOADF */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
goto L635; /* mov.%t $f%r,%y */
case 226: L226: /* LOADD */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
goto L635; /* mov.%t $f%r,%y */
case 227: L227: /* LOADC */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
a->x.ints[3] = 3; /* b */
goto L614; /* move $%r,%y */
case 228: L228: /* LOADS */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
a->x.ints[3] = 4; /* h */
goto L614; /* move $%r,%y */
case 229: L229: /* LOADI */
case 230: L230: /* LOADU */
case 231: L231: /* LOADP */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
a->x.ints[3] = 5; /* w */
goto L614; /* move $%r,%y */
case 241: L241: /* RETF */
case 242: L242: /* RETD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rtarget(a,0,f0);
goto L622; /* # ret */
case 245: L245: /* RETI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rtarget(a,0,ireg[2]);
goto L622; /* # ret */
case 248: L248: /* RETV */
dumptree(a, a->op);
goto L622; /* # ret */
case 263: L263: /* ADDRGP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[0] = 5; /* %c */
goto L612; /* la $%r,%y */
case 279: L279: /* ADDRFP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[0] = 7; /* %c($sp) */
goto L612; /* la $%r,%y */
case 295: L295: /* ADDRLP */
dumptree(a, a->op);
setreg(a, rmap[P]);
a->x.ints[0] = 7; /* %c($sp) */
goto L612; /* la $%r,%y */
case 305: L305: /* ADDF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 14; /* add */
goto L624; /* %f.%t $f%r,%y,%x */
case 306: L306: /* ADDD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 14; /* add */
goto L624; /* %f.%t $f%r,%y,%x */
case 309: L309: /* ADDI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 23; /* addu */
goto L619; /* %f $%r,%y,%x */
case 310: L310: /* ADDU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 23; /* addu */
goto L619; /* %f $%r,%y,%x */
case 311: L311: /* ADDP */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 23; /* addu */
goto L619; /* %f $%r,%y,%x */
case 321: L321: /* SUBF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 22; /* sub */
goto L624; /* %f.%t $f%r,%y,%x */
case 322: L322: /* SUBD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 22; /* sub */
goto L624; /* %f.%t $f%r,%y,%x */
case 325: L325: /* SUBI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 31; /* subu */
goto L619; /* %f $%r,%y,%x */
case 326: L326: /* SUBU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 31; /* subu */
goto L619; /* %f $%r,%y,%x */
case 327: L327: /* SUBP */
dumptree(a, a->op);
setreg(a, rmap[P]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 31; /* subu */
goto L619; /* %f $%r,%y,%x */
case 341: L341: /* LSHI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 9; /* sll */
goto L619; /* %f $%r,%y,%x */
case 342: L342: /* LSHU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 9; /* sll */
goto L619; /* %f $%r,%y,%x */
case 357: L357: /* MODI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 21; /* rem */
goto L619; /* %f $%r,%y,%x */
case 358: L358: /* MODU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 30; /* remu */
goto L619; /* %f $%r,%y,%x */
case 373: L373: /* RSHI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 10; /* sra */
goto L619; /* %f $%r,%y,%x */
case 374: L374: /* RSHU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 11; /* srl */
goto L619; /* %f $%r,%y,%x */
case 390: L390: /* BANDU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 1; /* and */
goto L619; /* %f $%r,%y,%x */
case 406: L406: /* BCOMU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 7; /* not */
goto L615; /* %f $%r,%y */
case 422: L422: /* BORU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 8; /* or */
goto L619; /* %f $%r,%y,%x */
case 438: L438: /* BXORU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 13; /* xor */
goto L619; /* %f $%r,%y,%x */
case 449: L449: /* DIVF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 15; /* div */
goto L624; /* %f.%t $f%r,%y,%x */
case 450: L450: /* DIVD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 15; /* div */
goto L624; /* %f.%t $f%r,%y,%x */
case 453: L453: /* DIVI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 15; /* div */
goto L619; /* %f $%r,%y,%x */
case 454: L454: /* DIVU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 24; /* divu */
goto L619; /* %f $%r,%y,%x */
case 465: L465: /* MULF */
dumptree(a, a->op);
setreg(a, rmap[F]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 5; /* mul */
goto L624; /* %f.%t $f%r,%y,%x */
case 466: L466: /* MULD */
dumptree(a, a->op);
setreg(a, rmap[D]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 5; /* mul */
goto L624; /* %f.%t $f%r,%y,%x */
case 469: L469: /* MULI */
dumptree(a, a->op);
setreg(a, rmap[I]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 5; /* mul */
goto L619; /* %f $%r,%y,%x */
case 470: L470: /* MULU */
dumptree(a, a->op);
setreg(a, rmap[U]);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 5; /* mul */
goto L619; /* %f $%r,%y,%x */
case 481: L481: /* EQF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 4; /* eq */
goto L631; /* c.%f.%t %y,%x; bc1t %r */
case 482: L482: /* EQD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 4; /* eq */
goto L631; /* c.%f.%t %y,%x; bc1t %r */
case 485: L485: /* EQI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 4; /* eq */
goto L627; /* b%f %y,%x,%r */
case 497: L497: /* GEF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 19; /* lt */
goto L630; /* c.%f.%t %y,%x; bc1f %r */
case 498: L498: /* GED */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 19; /* lt */
goto L630; /* c.%f.%t %y,%x; bc1f %r */
case 501: L501: /* GEI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 16; /* ge */
goto L627; /* b%f %y,%x,%r */
case 502: L502: /* GEU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 25; /* geu */
goto L627; /* b%f %y,%x,%r */
case 513: L513: /* GTF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 18; /* le */
goto L630; /* c.%f.%t %y,%x; bc1f %r */
case 514: L514: /* GTD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 18; /* le */
goto L630; /* c.%f.%t %y,%x; bc1f %r */
case 517: L517: /* GTI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 17; /* gt */
goto L627; /* b%f %y,%x,%r */
case 518: L518: /* GTU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 26; /* gtu */
goto L627; /* b%f %y,%x,%r */
case 529: L529: /* LEF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 18; /* le */
goto L631; /* c.%f.%t %y,%x; bc1t %r */
case 530: L530: /* LED */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 18; /* le */
goto L631; /* c.%f.%t %y,%x; bc1t %r */
case 533: L533: /* LEI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 18; /* le */
goto L627; /* b%f %y,%x,%r */
case 534: L534: /* LEU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 27; /* leu */
goto L627; /* b%f %y,%x,%r */
case 545: L545: /* LTF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 19; /* lt */
goto L631; /* c.%f.%t %y,%x; bc1t %r */
case 546: L546: /* LTD */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 19; /* lt */
goto L631; /* c.%f.%t %y,%x; bc1t %r */
case 549: L549: /* LTI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 19; /* lt */
goto L627; /* b%f %y,%x,%r */
case 550: L550: /* LTU */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 28; /* ltu */
goto L627; /* b%f %y,%x,%r */
case 561: L561: /* NEF */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 1; /* s */
a->x.ints[2] = 4; /* eq */
goto L630; /* c.%f.%t %y,%x; bc1f %r */
case 562: L562: /* NED */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 3; /* $f%n */
a->x.ints[0] = 3; /* $f%n */
a->x.ints[3] = 2; /* d */
a->x.ints[2] = 4; /* eq */
goto L630; /* c.%f.%t %y,%x; bc1f %r */
case 565: L565: /* NEI */
dumptree(a, a->op);
rewrite(a->kids[0]);
rewrite(a->kids[1]);
a->syms[2] = a->syms[0];
a->x.ints[1] = 1; /* $%n */
a->x.ints[0] = 1; /* $%n */
a->x.ints[2] = 6; /* ne */
goto L627; /* b%f %y,%x,%r */
case 584: L584: /* JUMPV */
dumptree(a, a->op);
rewrite(a->kids[0]);
a->x.ints[0] = 1; /* $%n */
goto L629; /* j %y */
case 600: L600: /* LABELV */
dumptree(a, a->op);
a->x.ints[0] = 5; /* %c */
goto L639; /* %y: */
case 608: L608: /* jal %y # int */
dumptree(a, 608);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* $%n */
&& b->op == 612 /* la $%r,%y */
&& b->x.ints[0] == 5 /* %c */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L608; /* jal %y # int */
}
a->op = 608;
break;
case 609: L609: /* jal %y # real */
dumptree(a, 609);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* $%n */
&& b->op == 612 /* la $%r,%y */
&& b->x.ints[0] == 5 /* %c */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L609; /* jal %y # real */
}
a->op = 609;
break;
case 610: L610: /* # asgnb */
dumptree(a, 610);
a->op = 610;
break;
case 611: L611: /* # argb */
dumptree(a, 611);
a->op = 611;
break;
case 612: L612: /* la $%r,%y */
dumptree(a, 612);
a->op = 612;
break;
case 613: L613: /* mfc1 $%r,%y */
dumptree(a, 613);
a->op = 613;
break;
case 614: L614: /* move $%r,%y */
dumptree(a, 614);
switch (a->x.ints[0]) {
case 1: /* $%n */
b = a->kids[0];
switch (b->op) {
case 612: /* la $%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L612; /* la $%r,%y */
}
break;
case 613: /* mfc1 $%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L613; /* mfc1 $%r,%y */
}
break;
case 614: /* move $%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L614; /* move $%r,%y */
}
break;
case 615: /* %f $%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L615; /* %f $%r,%y */
}
break;
case 616: /* li $%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L616; /* li $%r,%y */
}
break;
case 617: /* l%t $%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L617; /* l%t $%r,%y */
}
break;
case 618: /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L618; /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
}
break;
case 619: /* %f $%r,%y,%x */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L619; /* %f $%r,%y,%x */
}
break;
case 620: /* l%tu $%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L620; /* l%tu $%r,%y */
}
break;
case 621: /* # nop */
if (
a->syms[RX] == rmap[I]
) {
--b->count;
a->syms[2] = b->syms[2];
a->kids[0] = 0;
goto L621; /* # nop */
}
break;
}
break;
case 2: /* $%c */
if (
rmcopy(a)
) {
a->syms[2] = a->syms[0];
goto L621; /* # nop */
}
break;
}
a->op = 614;
break;
case 615: L615: /* %f $%r,%y */
dumptree(a, 615);
a->op = 615;
break;
case 616: L616: /* li $%r,%y */
dumptree(a, 616);
if (
a->x.ints[0] == 5 /* %c */
&& a->syms[0]->x.name == sym[1].x.name /* 0 */
) {
setreg(a,ireg[0]);
goto L621; /* # nop */
}
a->op = 616;
break;
case 617: L617: /* l%t $%r,%y */
dumptree(a, 617);
switch (a->x.ints[0]) {
case 7: /* %c($sp) */
if (
isregvar(a->syms[0])
) {
a->x.ints[0] = 2; /* $%c */
goto L614; /* move $%r,%y */
}
break;
case 8: /* ($%n) */
b = a->kids[0];
if (
b->op == 612 /* la $%r,%y */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L617; /* l%t $%r,%y */
}
break;
}
b = a->kids[0];
if (
a->x.ints[3] == 2 /* d */
&& a->x.ints[0] == 3 /* $f%n */
&& b->op == 632 /* l.%t $f%r,%y */
&& b->count == 1
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[3] = b->x.ints[3];
goto L617; /* l%t $%r,%y */
}
a->op = 617;
break;
case 618: L618: /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
dumptree(a, 618);
b = a->kids[0];
if (
a->x.ints[2] == 12 /* trunc.w */
&& a->x.ints[3] == 2 /* d */
&& a->x.ints[0] == 3 /* $f%n */
&& b->op == 623 /* %f.%t $f%r,%y */
&& b->x.ints[2] == 2 /* cvt.d */
&& b->x.ints[3] == 1 /* s */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->x.ints[3] = 1; /* s */
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L618; /* %f.%t $f2,%y,$%r; mfc1 $%r,$f2 */
}
a->op = 618;
break;
case 619: L619: /* %f $%r,%y,%x */
dumptree(a, 619);
if (
a->x.ints[2] == 23 /* addu */
&& a->x.ints[1] == 1 /* $%n */
) {
b = a->kids[1];
if (
b->op == 612 /* la $%r,%y */
&& b->x.ints[0] == 5 /* %c */
) {
--b->count;
a->x.ints[0] = 6; /* %c($%n) */
a->syms[0] = b->syms[0];
a->kids[1] = 0;
goto L612; /* la $%r,%y */
}
if (
atst(a)
&& b->op == 616 /* li $%r,%y */
&& b->x.ints[0] == 5 /* %c */
) {
--b->count;
a->x.ints[0] = 6; /* %c($%n) */
a->syms[0] = b->syms[0];
a->kids[1] = 0;
goto L612; /* la $%r,%y */
}
}
b = a->kids[1];
if (
a->x.ints[1] == 1 /* $%n */
&& b->op == 616 /* li $%r,%y */
&& b->x.ints[0] == 5 /* %c */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[1] = b->syms[0];
a->x.ints[1] = b->x.ints[0];
a->kids[1] = b->kids[0];
goto L619; /* %f $%r,%y,%x */
}
if (
a->x.ints[2] == 1 /* and */
&& a->x.ints[0] == 1 /* $%n */
&& a->x.ints[1] == 5 /* %c */
) {
b = a->kids[0];
if (
a->syms[1]->x.name == sym[12].x.name /* 65535 */
&& b->op == 617 /* l%t $%r,%y */
&& b->x.ints[3] == 4 /* h */
&& b->count == 1
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->x.ints[3] = b->x.ints[3];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L620; /* l%tu $%r,%y */
}
if (
a->syms[1]->x.name == sym[11].x.name /* 255 */
&& b->op == 617 /* l%t $%r,%y */
&& b->x.ints[3] == 3 /* b */
&& b->count == 1
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->x.ints[3] = b->x.ints[3];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L620; /* l%tu $%r,%y */
}
}
a->op = 619;
break;
case 620: L620: /* l%tu $%r,%y */
dumptree(a, 620);
a->op = 620;
break;
case 621: L621: /* # nop */
dumptree(a, 621);
a->op = 621;
break;
case 622: L622: /* # ret */
dumptree(a, 622);
a->op = 622;
break;
case 623: L623: /* %f.%t $f%r,%y */
dumptree(a, 623);
a->op = 623;
break;
case 624: L624: /* %f.%t $f%r,%y,%x */
dumptree(a, 624);
a->op = 624;
break;
case 625: L625: /* sll $%r,%y,%x; %f $%r,$%r,%x */
dumptree(a, 625);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* $%n */
&& a->x.ints[2] == 10 /* sra */
&& a->x.ints[1] == 5 /* %c */
&& b->op == 617 /* l%t $%r,%y */
) {
switch (b->x.ints[3]) {
case 3: /* b */
if (
b->count == 1
&& a->syms[1]->x.name == sym[10].x.name /* 24 */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->x.ints[3] = b->x.ints[3];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L617; /* l%t $%r,%y */
}
break;
case 4: /* h */
if (
b->count == 1
&& a->syms[1]->x.name == sym[9].x.name /* 16 */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->x.ints[3] = b->x.ints[3];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L617; /* l%t $%r,%y */
}
break;
}
}
a->op = 625;
break;
case 626: L626: /* # label */
dumptree(a, 626);
a->op = 626;
break;
case 627: L627: /* b%f %y,%x,%r */
dumptree(a, 627);
b = a->kids[1];
if (
a->x.ints[1] == 1 /* $%n */
&& b->op == 616 /* li $%r,%y */
&& b->x.ints[0] == 5 /* %c */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[1] = b->syms[0];
a->x.ints[1] = b->x.ints[0];
a->kids[1] = b->kids[0];
goto L627; /* b%f %y,%x,%r */
}
a->op = 627;
break;
case 628: L628: /* b %r */
dumptree(a, 628);
a->op = 628;
break;
case 629: L629: /* j %y */
dumptree(a, 629);
b = a->kids[0];
if (
a->x.ints[0] == 1 /* $%n */
&& a->kids[0] == a->kids[0]
&& b->count == 1
&& b->op == 612 /* la $%r,%y */
&& b->x.ints[0] == 5 /* %c */
) {
--b->count;
--b->count;
a->syms[2] = b->syms[0];
a->kids[0] = 0;
a->kids[0] = 0;
goto L628; /* b %r */
}
a->op = 629;
break;
case 630: L630: /* c.%f.%t %y,%x; bc1f %r */
dumptree(a, 630);
a->op = 630;
break;
case 631: L631: /* c.%f.%t %y,%x; bc1t %r */
dumptree(a, 631);
a->op = 631;
break;
case 632: L632: /* l.%t $f%r,%y */
dumptree(a, 632);
switch (a->x.ints[0]) {
case 7: /* %c($sp) */
if (
isregvar(a->syms[0])
) {
a->x.ints[0] = 4; /* $f%c */
goto L635; /* mov.%t $f%r,%y */
}
break;
case 8: /* ($%n) */
b = a->kids[0];
if (
b->op == 612 /* la $%r,%y */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L632; /* l.%t $f%r,%y */
}
break;
}
a->op = 632;
break;
case 633: L633: /* li.%t $f%r,%y */
dumptree(a, 633);
a->op = 633;
break;
case 634: L634: /* mfc1.d $%r,%y */
dumptree(a, 634);
a->op = 634;
break;
case 635: L635: /* mov.%t $f%r,%y */
dumptree(a, 635);
switch (a->x.ints[0]) {
case 3: /* $f%n */
b = a->kids[0];
switch (b->op) {
case 621: /* # nop */
if (
a->syms[RX] == rmap[D]
) {
--b->count;
a->syms[2] = b->syms[2];
a->kids[0] = 0;
goto L621; /* # nop */
}
break;
case 623: /* %f.%t $f%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L623; /* %f.%t $f%r,%y */
}
break;
case 624: /* %f.%t $f%r,%y,%x */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L624; /* %f.%t $f%r,%y,%x */
}
break;
case 632: /* l.%t $f%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L632; /* l.%t $f%r,%y */
}
break;
case 633: /* li.%t $f%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L633; /* li.%t $f%r,%y */
}
break;
case 635: /* mov.%t $f%r,%y */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L635; /* mov.%t $f%r,%y */
}
break;
case 636: /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
if (
b->count == 1
) {
if (--b->count > 0) {
if (c=b->kids[0]) ++c->count;
if (c=b->kids[1]) ++c->count;
}
a->syms[1] = b->syms[1];
a->kids[1] = b->kids[1];
a->x.ints[1] = b->x.ints[1];
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
a->x.ints[2] = b->x.ints[2];
a->x.ints[3] = b->x.ints[3];
goto L636; /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
}
break;
}
break;
case 4: /* $f%c */
if (
rmcopy(a)
) {
a->syms[2] = a->syms[0];
goto L621; /* # nop */
}
break;
}
a->op = 635;
break;
case 636: L636: /* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
dumptree(a, 636);
a->op = 636;
break;
case 637: L637: /* s%t $%k,%y */
dumptree(a, 637);
if (
a->x.ints[0] == 7 /* %c($sp) */
&& isregvar(a->syms[0])
) {
a->x.ints[0] = 1; /* $%n */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
a->syms[2] = a->syms[0];
goto L614; /* move $%r,%y */
}
if (
a->x.ints[3] == 5 /* w */
&& a->x.ints[0] == 7 /* %c($sp) */
) {
if (
a->syms[0]->x.name == sym[1].x.name /* 0 */
) {
a->x.ints[0] = 1; /* $%n */
a->syms[2] = &sym[2]; /* 4 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L614; /* move $%r,%y */
}
if (
a->syms[0]->x.name == sym[2].x.name /* 4 */
) {
a->x.ints[0] = 1; /* $%n */
a->syms[2] = &sym[3]; /* 5 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L614; /* move $%r,%y */
}
if (
a->syms[0]->x.name == sym[6].x.name /* 8 */
) {
a->x.ints[0] = 1; /* $%n */
a->syms[2] = &sym[4]; /* 6 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L614; /* move $%r,%y */
}
if (
a->syms[0]->x.name == sym[7].x.name /* 12 */
) {
a->x.ints[0] = 1; /* $%n */
a->syms[2] = &sym[5]; /* 7 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L614; /* move $%r,%y */
}
}
b = a->kids[0];
if (
a->x.ints[0] == 8 /* ($%n) */
&& b->op == 612 /* la $%r,%y */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L637; /* s%t $%k,%y */
}
a->op = 637;
break;
case 638: L638: /* s.%t $f%k,%y */
dumptree(a, 638);
if (
a->x.ints[0] == 7 /* %c($sp) */
&& isregvar(a->syms[0])
) {
a->x.ints[0] = 3; /* $f%n */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
a->syms[2] = a->syms[0];
goto L635; /* mov.%t $f%r,%y */
}
switch (a->x.ints[3]) {
case 1: /* s */
if (
a->x.ints[0] == 7 /* %c($sp) */
&& a->syms[0]->x.name == sym[1].x.name /* 0 */
&& a->x.isvararg
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[2]; /* 4 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L613; /* mfc1 $%r,%y */
}
break;
case 2: /* d */
if (
a->x.ints[0] == 7 /* %c($sp) */
&& a->syms[0]->x.name == sym[1].x.name /* 0 */
&& a->x.isvararg
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[2]; /* 4 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L634; /* mfc1.d $%r,%y */
}
break;
}
if (
a->x.ints[0] == 7 /* %c($sp) */
) {
if (
a->syms[0]->x.name == sym[1].x.name /* 0 */
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[7]; /* 12 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L635; /* mov.%t $f%r,%y */
}
if (
a->syms[0]->x.name == sym[2].x.name /* 4 */
) {
if (last)
/* %f.%t $f%r,%y */
/* %f.%t $f%r,%y,%x */
/* l.%t $f%r,%y */
/* li.%t $f%r,%y */
/* mov.%t $f%r,%y */
/* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
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]) {
if (
last && last->syms[2]->x.name == sym[7].x.name /* 12 */
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[8]; /* 14 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
rewrite(last);
goto L635; /* mov.%t $f%r,%y */
}
}
}
if (
a->syms[0]->x.name == sym[6].x.name /* 8 */
) {
if (last)
/* %f.%t $f%r,%y */
/* %f.%t $f%r,%y,%x */
/* l.%t $f%r,%y */
/* li.%t $f%r,%y */
/* mov.%t $f%r,%y */
/* mtc1 %y,$f%r; %f.%t $f%r,$f%r */
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]) {
if (
last && last->syms[2]->x.name == sym[7].x.name /* 12 */
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[8]; /* 14 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
rewrite(last);
goto L635; /* mov.%t $f%r,%y */
}
}
}
}
switch (a->x.ints[3]) {
case 1: /* s */
if (
a->x.ints[0] == 7 /* %c($sp) */
) {
if (
a->syms[0]->x.name == sym[2].x.name /* 4 */
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[3]; /* 5 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L613; /* mfc1 $%r,%y */
}
if (
a->syms[0]->x.name == sym[6].x.name /* 8 */
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[4]; /* 6 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L613; /* mfc1 $%r,%y */
}
if (
a->syms[0]->x.name == sym[7].x.name /* 12 */
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[5]; /* 7 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L613; /* mfc1 $%r,%y */
}
}
break;
case 2: /* d */
if (
a->x.ints[0] == 7 /* %c($sp) */
&& a->syms[0]->x.name == sym[6].x.name /* 8 */
) {
a->x.ints[0] = 3; /* $f%n */
a->syms[2] = &sym[4]; /* 6 */
a->kids[0] = a->kids[2];
a->kids[2] = 0;
goto L634; /* mfc1.d $%r,%y */
}
break;
}
b = a->kids[0];
if (
a->x.ints[0] == 8 /* ($%n) */
&& b->op == 612 /* la $%r,%y */
) {
if (--b->count > 0)
if (c=b->kids[0]) ++c->count;
a->syms[0] = b->syms[0];
a->x.ints[0] = b->x.ints[0];
a->kids[0] = b->kids[0];
goto L638; /* s.%t $f%k,%y */
}
a->op = 638;
break;
case 639: L639: /* %y: */
dumptree(a, 639);
a->op = 639;
break;
default:
assert(0);
}
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.