|
|
1.1 root 1: /* "lea %c($sp),$a1; mov.l &%0/2,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6" => ="lea %z,$a1; mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6" C="%c($sp)" B="&%c/2" b=a */
2: /* "mov.l &%0/2,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6" => ="mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6" B="&%c/2" b=a */
3: /* "mov.l $a%0,$a%c" => ="mov.%t %y,%z" E="l" A="$a%n" 0=0 C="$a%c" */
4: /* "jsr ($a%0)" => ="jsr %y" A="($a%n)" 0=0 */
5: /* "and.l &0xff,$d%c" => ="%f.%t %x,%z" D="and" E="l" B="&%c" b="0xff" C="$d%c" */
6: /* "and.l &0xffff,$d%c" => ="%f.%t %x,%z" D="and" E="l" B="&%c" b="0xffff" C="$d%c" */
7: /* "mov.b $d%0,$d%c" => ="mov.%t %y,%z" E="b" A="$d%n" 0=0 C="$d%c" */
8: /* "mov.w $d%0,$d%c" => ="mov.%t %y,%z" E="w" A="$d%n" 0=0 C="$d%c" */
9: /* "mov.b $d%0,$d%c" => ="mov.%t %y,%z" E="b" A="$d%n" 0=0 C="$d%c" */
10: /* "mov.w $d%0,$d%c" => ="mov.%t %y,%z" E="w" A="$d%n" 0=0 C="$d%c" */
11: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
12: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
13: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
14: /* "mov.l $a%0,$d%c" => ="mov.%t %y,%z" E="l" A="$a%n" 0=0 C="$d%c" */
15: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
16: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
17: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
18: /* "mov.l $d%0,$a%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$a%c" */
19: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
20: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
21: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
22: /* "mov.l $a%0,$a%c" => ="mov.%t %y,%z" E="l" A="$a%n" 0=0 C="$a%c" */
23: /* "mov.l $a%0,$a%c" => ="mov.%t %y,%z" E="l" A="$a%n" 0=0 C="$a%c" */
24: /* "mov.l $d%0,$d%c" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="$d%c" */
25: /* "jsr ($a%0)" => ="jsr %y" A="($a%n)" 0=0 */
26: /* "jsr ($a%0)" => ="jsr %y" A="($a%n)" 0=0 */
27: /* "bra ($a%0)" => ="bra %z" C="($a%n)" 2=0 */
28: /* "L%0:" => ="%z:" C="L%c" c=a */
29: /* "lea _%0,$a%c" => ="lea %y,%z" A="_%c" a=a C="$a%c" */
30: /* "lea %0($a6),$a%c" => ="lea %y,%z" A="%c($a6)" a=a C="$a%c" */
31: /* "lea %0($a6),$a%c" => ="lea %y,%z" A="%c($a6)" a=a C="$a%c" */
32: /* "add.l $d%1,$a%c" => ="%f.%t %x,%z" D="add" E="l" B="$d%n" 1=1 C="$a%c" */
33: /* "sub.l $d%1,$a%c" => ="%f.%t %x,%z" D="sub" E="l" B="$d%n" 1=1 C="$a%c" */
34: /* "and.l $d%1,$d%c" => ="%f.%t %x,%z" D="and" E="l" B="$d%n" 1=1 C="$d%c" */
35: /* "add.l $d%1,$d%c" => ="%f.%t %x,%z" D="add" E="l" B="$d%n" 1=1 C="$d%c" */
36: /* "add.l $d%1,$d%c" => ="%f.%t %x,%z" D="add" E="l" B="$d%n" 1=1 C="$d%c" */
37: /* "or.l $d%1,$d%c" => ="%f.%t %x,%z" D="or" E="l" B="$d%n" 1=1 C="$d%c" */
38: /* "sub.l $d%1,$d%c" => ="%f.%t %x,%z" D="sub" E="l" B="$d%n" 1=1 C="$d%c" */
39: /* "sub.l $d%1,$d%c" => ="%f.%t %x,%z" D="sub" E="l" B="$d%n" 1=1 C="$d%c" */
40: /* "eor.l $d%1,$d%c" => ="%f.%t %x,%z" D="eor" E="l" B="$d%n" 1=1 C="$d%c" */
41: /* "asl.l $d%1,$d%c" => ="%f.%t %x,%z" D="asl" E="l" B="$d%n" 1=1 C="$d%c" */
42: /* "asr.l $d%1,$d%c" => ="%f.%t %x,%z" D="asr" E="l" B="$d%n" 1=1 C="$d%c" */
43: /* "lsl.l $d%1,$d%c" => ="%f.%t %x,%z" D="lsl" E="l" B="$d%n" 1=1 C="$d%c" */
44: /* "lsr.l $d%1,$d%c" => ="%f.%t %x,%z" D="lsr" E="l" B="$d%n" 1=1 C="$d%c" */
45: /* "muls.w $d%1,$d%c" => ="%f.%t %x,%z" D="muls" E="w" B="$d%n" 1=1 C="$d%c" */
46: /* "mulu.w $d%1,$d%c" => ="%f.%t %x,%z" D="mulu" E="w" B="$d%n" 1=1 C="$d%c" */
47: /* "divs.w $d%1,$d%c; ext.w %z" => ="%f.%t %x,%z; ext.w %z" D="divs" E="w" B="$d%n" 1=1 C="$d%c" */
48: /* "divu.w $d%1,$d%c; and &0xffff,%z" => ="%f.%t %x,%z; and &0xffff,%z" D="divu" E="w" B="$d%n" 1=1 C="$d%c" */
49: /* "divs.w $d%1,$d%c; swap; ext.w %z" => ="%f.%t %x,%z; swap; ext.w %z" D="divs" E="w" B="$d%n" 1=1 C="$d%c" */
50: /* "divu.w $d%1,$d%c; swap; and &0xffff,%z" => ="%f.%t %x,%z; swap; and &0xffff,%z" D="divu" E="w" B="$d%n" 1=1 C="$d%c" */
51: /* "mov.l $d%0,%c($sp)" => ="mov.%t %y,%z" E="l" A="$d%n" 0=0 C="%c($sp)" */
52: /* "mov.l $a%0,%c($sp)" => ="mov.%t %y,%z" E="l" A="$a%n" 0=0 C="%c($sp)" */
53: /* "mov.b $d%1,($a%0)" => ="mov.%t %y,%z" E="b" A="$d%n" 0=1 C="($a%n)" 2=0 */
54: /* "mov.l $d%1,($a%0)" => ="mov.%t %y,%z" E="l" A="$d%n" 0=1 C="($a%n)" 2=0 */
55: /* "mov.w $d%1,($a%0)" => ="mov.%t %y,%z" E="w" A="$d%n" 0=1 C="($a%n)" 2=0 */
56: /* "mov.l $a%1,($a%0)" => ="mov.%t %y,%z" E="l" A="$a%n" 0=1 C="($a%n)" 2=0 */
57: /* "mov.b ($a%0),$d%c" => ="mov.%t %y,%z" E="b" A="($a%n)" 0=0 C="$d%c" */
58: /* "mov.l ($a%0),$d%c" => ="mov.%t %y,%z" E="l" A="($a%n)" 0=0 C="$d%c" */
59: /* "mov.w ($a%0),$d%c" => ="mov.%t %y,%z" E="w" A="($a%n)" 0=0 C="$d%c" */
60: /* "mov.l ($a%0),$a%c" => ="mov.%t %y,%z" E="l" A="($a%n)" 0=0 C="$a%c" */
61: /* "cmp.l $d%0,$d%1; beq L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="eq" C="L%c" c=a */
62: /* "cmp.l $d%0,$d%1; bge L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="ge" C="L%c" c=a */
63: /* "cmp.l $d%0,$d%1; bgt L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="gt" C="L%c" c=a */
64: /* "cmp.l $d%0,$d%1; ble L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="le" C="L%c" c=a */
65: /* "cmp.l $d%0,$d%1; blt L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="lt" C="L%c" c=a */
66: /* "cmp.l $d%0,$d%1; bne L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="ne" C="L%c" c=a */
67: /* "cmp.l $d%0,$d%1; beq L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="eq" C="L%c" c=a */
68: /* "cmp.l $d%0,$d%1; bcs L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="cs" C="L%c" c=a */
69: /* "cmp.l $d%0,$d%1; bne L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="ne" C="L%c" c=a */
70: /* "cmp.l $d%0,$d%1; bls L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="ls" C="L%c" c=a */
71: /* "cmp.l $d%0,$d%1; bhi L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="hi" C="L%c" c=a */
72: /* "cmp.l $d%0,$d%1; bcc L%0" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" 0=0 B="$d%n" 1=1 D="cc" C="L%c" c=a */
73: /* "mov.b &%0,$d%c" => ="mov.%t %y,%z" E="b" A="&%c" a=a C="$d%c" */
74: /* "mov.l &%0,$d%c" => ="mov.%t %y,%z" E="l" A="&%c" a=a C="$d%c" */
75: /* "mov.w &%0,$d%c" => ="mov.%t %y,%z" E="w" A="&%c" a=a C="$d%c" */
76: /* "mov.l &%0,$d%c" => ="mov.%t %y,%z" E="l" A="&%c" a=a C="$d%c" */
77: /* "mov.l &%0,$a%c" => ="mov.%t %y,%z" E="l" A="&%c" a=a C="$a%c" */
78: /* "ext.w $d%c; ext.l $d%c" => ="ext.w %z; ext.l %z" C="$d%c" C="$d%c" */
79: /* "ext.l $d%c" => ="%f.%t %z" D="ext" E="l" C="$d%c" */
80: /* "neg.l $d%c" => ="%f.%t %z" D="neg" E="l" C="$d%c" */
81: /* "not.l $d%c" => ="%f.%t %z" D="not" E="l" C="$d%c" */
82: /* "add.l $d%n,$a%c" => ="%f.%t %x,%z" D="add" E="l" B="$d%n" C="$a%c" */
83: /* "sub.l $d%n,$a%c" => ="%f.%t %x,%z" D="sub" E="l" B="$d%n" C="$a%c" */
84: /* "mov.%t $d%c,$d%c" => ="mov.%t %y,%z" A="$d%c" C="$d%c" */
85: /* "mov.%t $a%c,$a%c" => ="mov.%t %y,%z" A="$a%c" C="$a%c" */
86: /* "mov.%t $a%n,$a%c" => ="mov.%t %y,%z" A="$a%n" C="$a%c" */
87: /* "mov.%t %y,0($sp)" => ="mov.%t %y,%z" C="%c($sp)" c="0" */
88: /* "add.l &%c,$a%c" => ="%f.%t %x,%z" D="add" E="l" B="&%c" C="$a%c" */
89: /* "lea %c($a%n),%z" => ="lea %y,%z" A="%c($a%n)" */
90: /* "mov.l $a%n,%z" => ="mov.%t %y,%z" E="l" A="$a%n" */
91: /* "lea _%c,%z" => ="lea %y,%z" 0A="_%c" */
92: /* "bra ($a%n)" => ="bra %z" C="($a%n)" */
93: /* "lea _%c,%z" => ="lea %y,%z" 2A="_%c" */
94: /* "bra L%c" => ="bra %z" C="L%c" */
95: /* "add.l $a%n,$a%c" => ="%f.%t %x,%z" D="add" E="l" B="$a%n" C="$a%c" */
96: /* "lea 0($a%n,$d%i.l),%z" => ="lea %y,%z" A="0($a%n,$d%i.l)" */
97: /* "lea %c($a%n),$a%c" => ="lea %y,%z" A="%c($a%n)" C="$a%c" */
98: /* "mov.%t $a%c,%z" => ="mov.%t %y,%z" 0A="$a%c" */
99: /* "add.l &%c,%z" => ="%f.%t %x,%z" D="add" E="l" B="&%c" */
100: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
101: /* "mov.l $d%n,%z" => ="mov.%t %y,%z" 0E="l" 0A="$d%n" */
102: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
103: /* "mov.l $a%n,%z" => ="mov.%t %y,%z" 0E="l" 0A="$a%n" */
104: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
105: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
106: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
107: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
108: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
109: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
110: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
111: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
112: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
113: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
114: /* "add.%t $d%n,$d%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$d%c" */
115: /* "add.%t $d%n,$d%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$d%c" */
116: /* "add.%t $d%n,$d%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$d%c" */
117: /* "add.%t $d%n,$d%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$d%c" */
118: /* "add.%t $d%n,$d%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$d%c" */
119: /* "add.%t $d%n,$a%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$a%c" */
120: /* "add.%t $d%n,$a%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$a%c" */
121: /* "add.%t $d%n,$a%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$a%c" */
122: /* "add.%t $d%n,$a%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$a%c" */
123: /* "add.%t $d%n,$a%c" => ="%f.%t %x,%z" D="add" B="$d%n" C="$a%c" */
124: /* "add.%t $a%n,$d%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$d%c" */
125: /* "add.%t $a%n,$d%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$d%c" */
126: /* "add.%t $a%n,$d%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$d%c" */
127: /* "add.%t $a%n,$d%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$d%c" */
128: /* "add.%t $a%n,$d%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$d%c" */
129: /* "add.%t $a%n,$a%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$a%c" */
130: /* "add.%t $a%n,$a%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$a%c" */
131: /* "add.%t $a%n,$a%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$a%c" */
132: /* "add.%t $a%n,$a%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$a%c" */
133: /* "add.%t $a%n,$a%c" => ="%f.%t %x,%z" D="add" B="$a%n" C="$a%c" */
134: /* "sub.%t $d%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$d%c" */
135: /* "sub.%t $d%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$d%c" */
136: /* "sub.%t $d%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$d%c" */
137: /* "sub.%t $d%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$d%c" */
138: /* "sub.%t $d%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$d%c" */
139: /* "sub.%t $d%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$a%c" */
140: /* "sub.%t $d%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$a%c" */
141: /* "sub.%t $d%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$a%c" */
142: /* "sub.%t $d%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$a%c" */
143: /* "sub.%t $d%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$d%n" C="$a%c" */
144: /* "sub.%t $a%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$d%c" */
145: /* "sub.%t $a%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$d%c" */
146: /* "sub.%t $a%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$d%c" */
147: /* "sub.%t $a%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$d%c" */
148: /* "sub.%t $a%n,$d%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$d%c" */
149: /* "sub.%t $a%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$a%c" */
150: /* "sub.%t $a%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$a%c" */
151: /* "sub.%t $a%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$a%c" */
152: /* "sub.%t $a%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$a%c" */
153: /* "sub.%t $a%n,$a%c" => ="%f.%t %x,%z" D="sub" B="$a%n" C="$a%c" */
154: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
155: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
156: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
157: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
158: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
159: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
160: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
161: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
162: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
163: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
164: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
165: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
166: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
167: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
168: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
169: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
170: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
171: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
172: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
173: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
174: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
175: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
176: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
177: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
178: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
179: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
180: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
181: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
182: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
183: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
184: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
185: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
186: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
187: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
188: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
189: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
190: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
191: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
192: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
193: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
194: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
195: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
196: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
197: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
198: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
199: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
200: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
201: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
202: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
203: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
204: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
205: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
206: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
207: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
208: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
209: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
210: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
211: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
212: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
213: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
214: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
215: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
216: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
217: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
218: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
219: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
220: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
221: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
222: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
223: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
224: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
225: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
226: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
227: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
228: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
229: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
230: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
231: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
232: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
233: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
234: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
235: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
236: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
237: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
238: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
239: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
240: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
241: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
242: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
243: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
244: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
245: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
246: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
247: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
248: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
249: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
250: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
251: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
252: /* "and.%t $d%n,$d%c" => ="%f.%t %x,%z" D="and" B="$d%n" C="$d%c" */
253: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
254: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
255: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
256: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
257: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
258: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
259: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
260: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
261: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
262: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
263: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 1A="%c($a%n)" */
264: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
265: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
266: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
267: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
268: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
269: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
270: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
271: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
272: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
273: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 1A="($a%n)" */
274: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
275: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
276: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
277: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
278: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
279: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
280: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
281: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
282: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
283: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 1A="_%c" */
284: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
285: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
286: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
287: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
288: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
289: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
290: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
291: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
292: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
293: /* "mov.%t &%c,%z" => ="mov.%t %y,%z" 1A="&%c" */
294: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
295: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
296: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
297: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
298: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
299: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
300: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
301: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
302: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
303: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 1A="$d%c" */
304: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
305: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
306: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
307: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
308: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
309: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
310: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
311: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
312: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
313: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 1A="$d%n" */
314: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
315: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
316: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
317: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
318: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
319: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
320: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
321: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
322: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
323: /* "mov.%t &_%c,%z" => ="mov.%t %y,%z" 1A="&_%c" */
324: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
325: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
326: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
327: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
328: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
329: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
330: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
331: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
332: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
333: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 1A="%c($sp)" */
334: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
335: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
336: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
337: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
338: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
339: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
340: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
341: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
342: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
343: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 1A="%c($a6)" */
344: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
345: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
346: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
347: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
348: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
349: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
350: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
351: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
352: /* "or.%t $d%n,$d%c" => ="%f.%t %x,%z" D="or" B="$d%n" C="$d%c" */
353: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 1A="_%c($a%n)" */
354: /* "cmp.%t $a%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$d%n" */
355: /* "cmp.%t $a%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$d%n" */
356: /* "cmp.%t $a%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$d%n" */
357: /* "cmp.%t $a%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$d%n" */
358: /* "cmp.%t $a%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$d%n" */
359: /* "cmp.%t $a%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$a%n" */
360: /* "cmp.%t $a%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$a%n" */
361: /* "cmp.%t $a%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$a%n" */
362: /* "cmp.%t $a%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$a%n" */
363: /* "cmp.%t $a%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%c" B="$a%n" */
364: /* "cmp.%t $a%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$d%n" */
365: /* "cmp.%t $a%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$d%n" */
366: /* "cmp.%t $a%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$d%n" */
367: /* "cmp.%t $a%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$d%n" */
368: /* "cmp.%t $a%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$d%n" */
369: /* "cmp.%t $a%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$a%n" */
370: /* "cmp.%t $a%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$a%n" */
371: /* "cmp.%t $a%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$a%n" */
372: /* "cmp.%t $a%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$a%n" */
373: /* "cmp.%t $a%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="$a%n" */
374: /* "cmp.%t $d%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$d%n" */
375: /* "cmp.%t $d%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$d%n" */
376: /* "cmp.%t $d%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$d%n" */
377: /* "cmp.%t $d%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$d%n" */
378: /* "cmp.%t $d%c,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$d%n" */
379: /* "cmp.%t $d%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$a%n" */
380: /* "cmp.%t $d%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$a%n" */
381: /* "cmp.%t $d%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$a%n" */
382: /* "cmp.%t $d%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$a%n" */
383: /* "cmp.%t $d%c,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="$a%n" */
384: /* "cmp.%t $d%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$d%n" */
385: /* "cmp.%t $d%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$d%n" */
386: /* "cmp.%t $d%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$d%n" */
387: /* "cmp.%t $d%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$d%n" */
388: /* "cmp.%t $d%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$d%n" */
389: /* "cmp.%t $d%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$a%n" */
390: /* "cmp.%t $d%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$a%n" */
391: /* "cmp.%t $d%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$a%n" */
392: /* "cmp.%t $d%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$a%n" */
393: /* "cmp.%t $d%n,$a%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="$a%n" */
394: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
395: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 0A="%c($a%n)" */
396: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
397: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 0A="($a%n)" */
398: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
399: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 0A="_%c" */
400: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
401: /* "mov.%t $a%c,%z" => ="mov.%t %y,%z" 0A="$a%c" */
402: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
403: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" 0A="$a%n" */
404: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
405: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 0A="$d%c" */
406: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
407: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 0A="$d%n" */
408: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
409: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 0A="%c($sp)" */
410: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
411: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 0A="%c($a6)" */
412: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
413: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 0A="_%c($a%n)" */
414: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
415: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 0A="%c($a%n)" */
416: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
417: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 0A="($a%n)" */
418: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
419: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 0A="_%c" */
420: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
421: /* "mov.%t $a%c,%z" => ="mov.%t %y,%z" 0A="$a%c" */
422: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
423: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" 0A="$a%n" */
424: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
425: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 0A="$d%c" */
426: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
427: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 0A="$d%n" */
428: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
429: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 0A="%c($sp)" */
430: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
431: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 0A="%c($a6)" */
432: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
433: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 0A="_%c($a%n)" */
434: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
435: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 0A="%c($a%n)" */
436: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
437: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 0A="($a%n)" */
438: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
439: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 0A="_%c" */
440: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
441: /* "mov.%t $a%c,%z" => ="mov.%t %y,%z" 0A="$a%c" */
442: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
443: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" 0A="$a%n" */
444: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
445: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 0A="$d%c" */
446: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
447: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 0A="$d%n" */
448: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
449: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 0A="%c($sp)" */
450: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
451: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 0A="%c($a6)" */
452: /* "cmp.%t $d%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" */
453: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 0A="_%c($a%n)" */
454: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
455: /* "mov.%t %c($a%n),%z" => ="mov.%t %y,%z" 0A="%c($a%n)" */
456: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
457: /* "mov.%t ($a%n),%z" => ="mov.%t %y,%z" 0A="($a%n)" */
458: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
459: /* "mov.%t _%c,%z" => ="mov.%t %y,%z" 0A="_%c" */
460: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
461: /* "mov.%t $a%c,%z" => ="mov.%t %y,%z" 0A="$a%c" */
462: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
463: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" 0A="$a%n" */
464: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
465: /* "mov.%t $d%c,%z" => ="mov.%t %y,%z" 0A="$d%c" */
466: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
467: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" 0A="$d%n" */
468: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
469: /* "mov.%t %c($sp),%z" => ="mov.%t %y,%z" 0A="%c($sp)" */
470: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
471: /* "mov.%t %c($a6),%z" => ="mov.%t %y,%z" 0A="%c($a6)" */
472: /* "cmp.%t $a%n,&%c; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$a%n" B="&%c" */
473: /* "mov.%t _%c($a%n),%z" => ="mov.%t %y,%z" 0A="_%c($a%n)" */
474: /* "cmp.l $d%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="$d%n" */
475: /* "cmp.l $d%n,$d%n; b%f %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="$d%n" */
476: /* "ext.l %z" => ="%f.%t %z" 0D="ext" 0E="l" */
477: /* "ext.l %z" => ="%f.%t %z" 1D="ext" 1E="l" */
478: /* "cmp.l $d%n,&%c; beq %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="eq" */
479: /* "cmp.l $d%n,&%c; bge %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="ge" */
480: /* "cmp.l $d%n,&%c; bgt %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="gt" */
481: /* "cmp.l $d%n,&%c; ble %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="le" */
482: /* "cmp.l $d%n,&%c; blt %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="lt" */
483: /* "cmp.l $d%n,&%c; bne %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="ne" */
484: /* "cmp.l $d%n,&%c; beq %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="eq" */
485: /* "ext.l %z" => ="%f.%t %z" 0D="ext" 0E="l" */
486: /* "cmp.l $d%n,&%c; bge %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="ge" */
487: /* "ext.l %z" => ="%f.%t %z" 0D="ext" 0E="l" */
488: /* "cmp.l $d%n,&%c; bgt %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="gt" */
489: /* "ext.l %z" => ="%f.%t %z" 0D="ext" 0E="l" */
490: /* "cmp.l $d%n,&%c; ble %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="le" */
491: /* "ext.l %z" => ="%f.%t %z" 0D="ext" 0E="l" */
492: /* "cmp.l $d%n,&%c; blt %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="lt" */
493: /* "ext.l %z" => ="%f.%t %z" 0D="ext" 0E="l" */
494: /* "cmp.l $d%n,&%c; bne %z" => ="cmp.%t %y,%x; b%f %z" E="l" A="$d%n" B="&%c" D="ne" */
495: /* "ext.l %z" => ="%f.%t %z" 0D="ext" 0E="l" */
496: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
497: /* "mov.%t &4,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="4" */
498: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
499: /* "mov.%t &8,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="8" */
500: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
501: /* "mov.%t &3,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="3" */
502: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
503: /* "mov.%t &7,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="7" */
504: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
505: /* "mov.%t &2,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="2" */
506: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
507: /* "mov.%t &6,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="6" */
508: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
509: /* "mov.%t &1,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="1" */
510: /* "asl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asl" B="$d%n" C="$d%c" */
511: /* "mov.%t &5,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="5" */
512: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
513: /* "mov.%t &4,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="4" */
514: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
515: /* "mov.%t &8,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="8" */
516: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
517: /* "mov.%t &3,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="3" */
518: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
519: /* "mov.%t &7,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="7" */
520: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
521: /* "mov.%t &2,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="2" */
522: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
523: /* "mov.%t &6,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="6" */
524: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
525: /* "mov.%t &1,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="1" */
526: /* "asr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="asr" B="$d%n" C="$d%c" */
527: /* "mov.%t &5,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="5" */
528: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
529: /* "mov.%t &4,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="4" */
530: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
531: /* "mov.%t &8,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="8" */
532: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
533: /* "mov.%t &3,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="3" */
534: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
535: /* "mov.%t &7,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="7" */
536: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
537: /* "mov.%t &2,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="2" */
538: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
539: /* "mov.%t &6,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="6" */
540: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
541: /* "mov.%t &1,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="1" */
542: /* "lsl.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsl" B="$d%n" C="$d%c" */
543: /* "mov.%t &5,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="5" */
544: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
545: /* "mov.%t &4,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="4" */
546: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
547: /* "mov.%t &8,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="8" */
548: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
549: /* "mov.%t &3,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="3" */
550: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
551: /* "mov.%t &7,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="7" */
552: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
553: /* "mov.%t &2,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="2" */
554: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
555: /* "mov.%t &6,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="6" */
556: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
557: /* "mov.%t &1,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="1" */
558: /* "lsr.%t $d%n,$d%c" => ="%f.%t %x,%z" D="lsr" B="$d%n" C="$d%c" */
559: /* "mov.%t &5,%z" => ="mov.%t %y,%z" 1A="&%c" 1a="5" */
560: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
561: /* "add.%t $a%n,%z" => ="%f.%t %x,%z" 0D="add" 0B="$a%n" */
562: /* "add.%t %x,%z" => ="%f.%t %x,%z" D="add" */
563: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
564: /* "add.%t $a%n,%z" => ="%f.%t %x,%z" 0D="add" 0B="$a%n" */
565: /* "add.%t %x,%z" => ="%f.%t %x,%z" D="add" */
566: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
567: /* "sub.%t $a%n,%z" => ="%f.%t %x,%z" 0D="sub" 0B="$a%n" */
568: /* "sub.%t %x,%z" => ="%f.%t %x,%z" D="sub" */
569: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
570: /* "sub.%t $a%n,%z" => ="%f.%t %x,%z" 0D="sub" 0B="$a%n" */
571: /* "sub.%t %x,%z" => ="%f.%t %x,%z" D="sub" */
572: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
573: /* "add.%t &%c,%z" => ="%f.%t %x,%z" 0D="add" 0B="&%c" */
574: /* "add.%t %x,%z" => ="%f.%t %x,%z" D="add" */
575: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
576: /* "add.%t &%c,%z" => ="%f.%t %x,%z" 0D="add" 0B="&%c" */
577: /* "add.%t %x,%z" => ="%f.%t %x,%z" D="add" */
578: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
579: /* "sub.%t &%c,%z" => ="%f.%t %x,%z" 0D="sub" 0B="&%c" */
580: /* "sub.%t %x,%z" => ="%f.%t %x,%z" D="sub" */
581: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
582: /* "sub.%t &%c,%z" => ="%f.%t %x,%z" 0D="sub" 0B="&%c" */
583: /* "sub.%t %x,%z" => ="%f.%t %x,%z" D="sub" */
584: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
585: /* "add.%t $d%n,%z" => ="%f.%t %x,%z" 0D="add" 0B="$d%n" */
586: /* "add.%t %x,%z" => ="%f.%t %x,%z" D="add" */
587: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
588: /* "add.%t $d%n,%z" => ="%f.%t %x,%z" 0D="add" 0B="$d%n" */
589: /* "add.%t %x,%z" => ="%f.%t %x,%z" D="add" */
590: /* "mov.%t $d%n,%z" => ="mov.%t %y,%z" A="$d%n" */
591: /* "sub.%t $d%n,%z" => ="%f.%t %x,%z" 0D="sub" 0B="$d%n" */
592: /* "sub.%t %x,%z" => ="%f.%t %x,%z" D="sub" */
593: /* "mov.%t $a%n,%z" => ="mov.%t %y,%z" A="$a%n" */
594: /* "sub.%t $d%n,%z" => ="%f.%t %x,%z" 0D="sub" 0B="$d%n" */
595: /* "sub.%t %x,%z" => ="%f.%t %x,%z" D="sub" */
596: /* "mov.%t &0,%c($a%n)" => ="mov.%t %y,%z" A="&%c" a="0" C="%c($a%n)" */
597: /* "mov.%t &0,($a%n)" => ="mov.%t %y,%z" A="&%c" a="0" C="($a%n)" */
598: /* "mov.%t &0,_%c" => ="mov.%t %y,%z" A="&%c" a="0" C="_%c" */
599: /* "mov.%t &0,$d%c" => ="mov.%t %y,%z" A="&%c" a="0" C="$d%c" */
600: /* "mov.%t &0,$d%n" => ="mov.%t %y,%z" A="&%c" a="0" C="$d%n" */
601: /* "mov.%t &0,%c($sp)" => ="mov.%t %y,%z" A="&%c" a="0" C="%c($sp)" */
602: /* "mov.%t &0,%c($a6)" => ="mov.%t %y,%z" A="&%c" a="0" C="%c($a6)" */
603: /* "mov.%t &0,_%c($a%n)" => ="mov.%t %y,%z" A="&%c" a="0" C="_%c($a%n)" */
604: /* "cmp.%t %c($a%n),&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="%c($a%n)" B="&%c" b="0" */
605: /* "cmp.%t ($a%n),&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="($a%n)" B="&%c" b="0" */
606: /* "cmp.%t _%c,&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="_%c" B="&%c" b="0" */
607: /* "cmp.%t $d%c,&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%c" B="&%c" b="0" */
608: /* "cmp.%t $d%n,&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="$d%n" B="&%c" b="0" */
609: /* "cmp.%t %c($sp),&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="%c($sp)" B="&%c" b="0" */
610: /* "cmp.%t %c($a6),&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="%c($a6)" B="&%c" b="0" */
611: /* "cmp.%t _%c($a%n),&0; b%f %z" => ="cmp.%t %y,%x; b%f %z" A="_%c($a%n)" B="&%c" b="0" */
612: #include "c.h"
613:
614: #ifdef DEBUG
615: #define dumptree(x,y) dumptree1(x,y,-1,0)
616: #else
617: #define dumptree(x,y)
618: #endif
619:
620: static char *shortopcodes[] = {
621: /* 608 */ "%f%t %x,%z |mod",
622: /* 609 */ "jsr %y",
623: /* 610 */ "lea %z,$a1; mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6",
624: /* 611 */ "mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6",
625: /* 612 */ "# label",
626: /* 613 */ "# nop",
627: /* 614 */ "# ret",
628: /* 615 */ "%f.%t %x,%z",
629: /* 616 */ "%f.%t %x,%z |mod",
630: /* 617 */ "%f.%t %z",
631: /* 618 */ "clr.%t %z",
632: /* 619 */ "cmp.%t %y,%x; b%f %z",
633: /* 620 */ "bra %z",
634: /* 621 */ "lea %y,%z",
635: /* 622 */ "mov.%t %y,%z",
636: /* 623 */ "mov.%t %y,%z; %f.%t %x,%z",
637: /* 624 */ "mov.%t %y,%z; %f.%t %z",
638: /* 625 */ "tst.%t %y; b%f %z",
639: /* 626 */ "%z:",
640: /* 627 */ "ext.w %z; ext.l %z",
641: /* 628 */ "%f.%t %x,%z; ext.w %z",
642: /* 629 */ "%f.%t %x,%z; and &0xffff,%z",
643: /* 630 */ "%f.%t %x,%z; swap; ext.w %z",
644: /* 631 */ "%f.%t %x,%z; swap; and &0xffff,%z",
645: };
646: char **opcodes = shortopcodes-608;
647:
648: char *asmstr0[] = {
649: "(DUMMY)",
650: "$a%n",
651: "$a%c",
652: "$d%n",
653: "$d%c",
654: "_%c",
655: "_%c($a%n)",
656: "_%c($sp)",
657: "_%c($a6)",
658: "%c($a%n)",
659: "%c($sp)",
660: "%c($a6)",
661: "($a%n)",
662: "($sp)",
663: "($a6)",
664: "&%c",
665: "&%c/2",
666: "&_%c",
667: "L%c",
668: "0($a%n,$d%i.l)",
669: };
670:
671: char *asmstr3[] = {
672: "(DUMMY)",
673: "add",
674: "and",
675: "asl",
676: "asr",
677: "cc",
678: "cs",
679: "divs",
680: "divu",
681: "eor",
682: "eq",
683: "ext",
684: "ge",
685: "gt",
686: "hi",
687: "le",
688: "ls",
689: "lsl",
690: "lsr",
691: "lt",
692: "muls",
693: "mulu",
694: "ne",
695: "neg",
696: "not",
697: "or",
698: "sub",
699: };
700:
701: char *asmstr4[] = {
702: "(DUMMY)",
703: "b",
704: "w",
705: "l",
706: "d",
707: "s",
708: "x",
709: };
710:
711: struct symbol sym[] = {
712: {{"(DUMMY)"}},
713: {{"0xff"}},
714: {{"0xffff"}},
715: {{"0"}},
716: {{"1"}},
717: {{"2"}},
718: {{"3"}},
719: {{"4"}},
720: {{"5"}},
721: {{"6"}},
722: {{"7"}},
723: {{"8"}},
724: };
725:
726: char **asmstr[MAXINTS] = {
727: asmstr0,
728: asmstr0,
729: asmstr0,
730: asmstr3,
731: asmstr4,
732: };
733:
734: void initgen()
735: {
736: sym[1].x.name = string("0xff");
737: sym[2].x.name = string("0xffff");
738: sym[3].x.name = string("0");
739: sym[4].x.name = string("1");
740: sym[5].x.name = string("2");
741: sym[6].x.name = string("3");
742: sym[7].x.name = string("4");
743: sym[8].x.name = string("5");
744: sym[9].x.name = string("6");
745: sym[10].x.name = string("7");
746: sym[11].x.name = string("8");
747: }
748:
749: dclproto(static char *emit0,(char *, Node, int))
750: static char *emit0(rbp, a, n)
751: register char *rbp;
752: register Node a;
753: register int n;
754: {
755: register char *cp;
756:
757: assert(a->x.ints[n]);
758: switch (a->x.ints[n]) {
759: case 0: /* (DUMMY) */
760: *rbp++ = '(';
761: *rbp++ = 'D';
762: *rbp++ = 'U';
763: *rbp++ = 'M';
764: *rbp++ = 'M';
765: *rbp++ = 'Y';
766: *rbp++ = ')';
767: return rbp;
768: case 1: /* $a%n */
769: *rbp++ = '$';
770: *rbp++ = 'a';
771: assert(a->kids[n+0]);
772: assert(a->kids[n+0]->x.registered);
773: assert(a->kids[n+0]->syms[RX]);
774: for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
775: return rbp;
776: case 2: /* $a%c */
777: *rbp++ = '$';
778: *rbp++ = 'a';
779: assert(a->syms[n+0]);
780: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
781: return rbp;
782: case 3: /* $d%n */
783: *rbp++ = '$';
784: *rbp++ = 'd';
785: assert(a->kids[n+0]);
786: assert(a->kids[n+0]->x.registered);
787: assert(a->kids[n+0]->syms[RX]);
788: for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
789: return rbp;
790: case 4: /* $d%c */
791: *rbp++ = '$';
792: *rbp++ = 'd';
793: assert(a->syms[n+0]);
794: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
795: return rbp;
796: case 5: /* _%c */
797: *rbp++ = '_';
798: assert(a->syms[n+0]);
799: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
800: return rbp;
801: case 6: /* _%c($a%n) */
802: *rbp++ = '_';
803: assert(a->syms[n+0]);
804: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
805: *rbp++ = '(';
806: *rbp++ = '$';
807: *rbp++ = 'a';
808: assert(a->kids[n+0]);
809: assert(a->kids[n+0]->x.registered);
810: assert(a->kids[n+0]->syms[RX]);
811: for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
812: *rbp++ = ')';
813: return rbp;
814: case 7: /* _%c($sp) */
815: *rbp++ = '_';
816: assert(a->syms[n+0]);
817: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
818: *rbp++ = '(';
819: *rbp++ = '$';
820: *rbp++ = 's';
821: *rbp++ = 'p';
822: *rbp++ = ')';
823: return rbp;
824: case 8: /* _%c($a6) */
825: *rbp++ = '_';
826: assert(a->syms[n+0]);
827: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
828: *rbp++ = '(';
829: *rbp++ = '$';
830: *rbp++ = 'a';
831: *rbp++ = '6';
832: *rbp++ = ')';
833: return rbp;
834: case 9: /* %c($a%n) */
835: assert(a->syms[n+0]);
836: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
837: *rbp++ = '(';
838: *rbp++ = '$';
839: *rbp++ = 'a';
840: assert(a->kids[n+0]);
841: assert(a->kids[n+0]->x.registered);
842: assert(a->kids[n+0]->syms[RX]);
843: for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
844: *rbp++ = ')';
845: return rbp;
846: case 10: /* %c($sp) */
847: assert(a->syms[n+0]);
848: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
849: *rbp++ = '(';
850: *rbp++ = '$';
851: *rbp++ = 's';
852: *rbp++ = 'p';
853: *rbp++ = ')';
854: return rbp;
855: case 11: /* %c($a6) */
856: assert(a->syms[n+0]);
857: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
858: *rbp++ = '(';
859: *rbp++ = '$';
860: *rbp++ = 'a';
861: *rbp++ = '6';
862: *rbp++ = ')';
863: return rbp;
864: case 12: /* ($a%n) */
865: *rbp++ = '(';
866: *rbp++ = '$';
867: *rbp++ = 'a';
868: assert(a->kids[n+0]);
869: assert(a->kids[n+0]->x.registered);
870: assert(a->kids[n+0]->syms[RX]);
871: for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
872: *rbp++ = ')';
873: return rbp;
874: case 13: /* ($sp) */
875: *rbp++ = '(';
876: *rbp++ = '$';
877: *rbp++ = 's';
878: *rbp++ = 'p';
879: *rbp++ = ')';
880: return rbp;
881: case 14: /* ($a6) */
882: *rbp++ = '(';
883: *rbp++ = '$';
884: *rbp++ = 'a';
885: *rbp++ = '6';
886: *rbp++ = ')';
887: return rbp;
888: case 15: /* &%c */
889: *rbp++ = '&';
890: assert(a->syms[n+0]);
891: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
892: return rbp;
893: case 16: /* &%c/2 */
894: *rbp++ = '&';
895: assert(a->syms[n+0]);
896: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
897: *rbp++ = '/';
898: *rbp++ = '2';
899: return rbp;
900: case 17: /* &_%c */
901: *rbp++ = '&';
902: *rbp++ = '_';
903: assert(a->syms[n+0]);
904: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
905: return rbp;
906: case 18: /* L%c */
907: *rbp++ = 'L';
908: assert(a->syms[n+0]);
909: for (cp = a->syms[n+0]->x.name; *cp; *rbp++ = *cp++);
910: return rbp;
911: case 19: /* 0($a%n,$d%i.l) */
912: *rbp++ = '0';
913: *rbp++ = '(';
914: *rbp++ = '$';
915: *rbp++ = 'a';
916: assert(a->kids[n+0]);
917: assert(a->kids[n+0]->x.registered);
918: assert(a->kids[n+0]->syms[RX]);
919: for (cp = a->kids[n+0]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
920: *rbp++ = ',';
921: *rbp++ = '$';
922: *rbp++ = 'd';
923: assert(a->kids[n+3]);
924: assert(a->kids[n+3]->x.registered);
925: assert(a->kids[n+3]->syms[RX]);
926: for (cp = a->kids[n+3]->syms[RX]->x.name; *cp; *rbp++ = *cp++);
927: *rbp++ = '.';
928: *rbp++ = 'l';
929: *rbp++ = ')';
930: return rbp;
931: }
932: return rbp;
933: }
934:
935: void emit(a)
936: register Node a;
937: {
938: register char *cp, *rbp;
939:
940: for (; a; a = a->x.next) {
941: switch (a->op) {
942: case 608: L608: /* %f%t %x,%z |mod */
943: rbp = bp;
944: assert(a->x.ints[3]);
945: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
946: assert(a->x.ints[4]);
947: cp = asmstr4[a->x.ints[4]];
948: *rbp++ = cp[0];
949: *rbp++ = ' ';
950: rbp = emit0(rbp, a, 1);
951: *rbp++ = ',';
952: rbp = emit0(rbp, a, 2);
953: *rbp++ = ' ';
954: *rbp++ = '|';
955: *rbp++ = 'm';
956: *rbp++ = 'o';
957: *rbp++ = 'd';
958: bp = rbp;
959: outs("\n");
960: break;
961: case 609: L609: /* jsr %y */
962: rbp = bp;
963: *rbp++ = 'j';
964: *rbp++ = 's';
965: *rbp++ = 'r';
966: *rbp++ = ' ';
967: rbp = emit0(rbp, a, 0);
968: bp = rbp;
969: outs("\n");
970: break;
971: case 610: L610: /* lea %z,$a1; mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
972: rbp = bp;
973: *rbp++ = 'l';
974: *rbp++ = 'e';
975: *rbp++ = 'a';
976: *rbp++ = ' ';
977: rbp = emit0(rbp, a, 2);
978: *rbp++ = ',';
979: *rbp++ = '$';
980: *rbp++ = 'a';
981: *rbp++ = '1';
982: bp = rbp; outs(";"); rbp = bp;
983: *rbp++ = ' ';
984: *rbp++ = 'm';
985: *rbp++ = 'o';
986: *rbp++ = 'v';
987: *rbp++ = '.';
988: *rbp++ = 'l';
989: *rbp++ = ' ';
990: rbp = emit0(rbp, a, 1);
991: *rbp++ = ',';
992: *rbp++ = '$';
993: *rbp++ = 'd';
994: *rbp++ = '0';
995: bp = rbp; outs(";"); rbp = bp;
996: *rbp++ = ' ';
997: *rbp++ = 'm';
998: *rbp++ = 'o';
999: *rbp++ = 'v';
1000: *rbp++ = '.';
1001: *rbp++ = 'w';
1002: *rbp++ = ' ';
1003: *rbp++ = '(';
1004: *rbp++ = '$';
1005: *rbp++ = 'a';
1006: *rbp++ = '0';
1007: *rbp++ = ')';
1008: *rbp++ = '+';
1009: *rbp++ = ',';
1010: *rbp++ = '(';
1011: *rbp++ = '$';
1012: *rbp++ = 'a';
1013: *rbp++ = '1';
1014: *rbp++ = ')';
1015: *rbp++ = '+';
1016: bp = rbp; outs(";"); rbp = bp;
1017: *rbp++ = ' ';
1018: *rbp++ = 's';
1019: *rbp++ = 'u';
1020: *rbp++ = 'b';
1021: *rbp++ = '.';
1022: *rbp++ = 'l';
1023: *rbp++ = ' ';
1024: *rbp++ = '&';
1025: *rbp++ = '1';
1026: *rbp++ = ',';
1027: *rbp++ = '$';
1028: *rbp++ = 'd';
1029: *rbp++ = '0';
1030: bp = rbp; outs(";"); rbp = bp;
1031: *rbp++ = ' ';
1032: *rbp++ = 'b';
1033: *rbp++ = 'y';
1034: *rbp++ = 't';
1035: *rbp++ = 'e';
1036: *rbp++ = ' ';
1037: *rbp++ = '0';
1038: *rbp++ = 'x';
1039: *rbp++ = '6';
1040: *rbp++ = 'e';
1041: *rbp++ = ',';
1042: *rbp++ = '-';
1043: *rbp++ = '6';
1044: bp = rbp;
1045: outs("\n");
1046: break;
1047: case 611: L611: /* mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
1048: rbp = bp;
1049: *rbp++ = 'm';
1050: *rbp++ = 'o';
1051: *rbp++ = 'v';
1052: *rbp++ = '.';
1053: *rbp++ = 'l';
1054: *rbp++ = ' ';
1055: rbp = emit0(rbp, a, 1);
1056: *rbp++ = ',';
1057: *rbp++ = '$';
1058: *rbp++ = 'd';
1059: *rbp++ = '0';
1060: bp = rbp; outs(";"); rbp = bp;
1061: *rbp++ = ' ';
1062: *rbp++ = 'm';
1063: *rbp++ = 'o';
1064: *rbp++ = 'v';
1065: *rbp++ = '.';
1066: *rbp++ = 'w';
1067: *rbp++ = ' ';
1068: *rbp++ = '(';
1069: *rbp++ = '$';
1070: *rbp++ = 'a';
1071: *rbp++ = '0';
1072: *rbp++ = ')';
1073: *rbp++ = '+';
1074: *rbp++ = ',';
1075: *rbp++ = '(';
1076: *rbp++ = '$';
1077: *rbp++ = 'a';
1078: *rbp++ = '1';
1079: *rbp++ = ')';
1080: *rbp++ = '+';
1081: bp = rbp; outs(";"); rbp = bp;
1082: *rbp++ = ' ';
1083: *rbp++ = 's';
1084: *rbp++ = 'u';
1085: *rbp++ = 'b';
1086: *rbp++ = '.';
1087: *rbp++ = 'l';
1088: *rbp++ = ' ';
1089: *rbp++ = '&';
1090: *rbp++ = '1';
1091: *rbp++ = ',';
1092: *rbp++ = '$';
1093: *rbp++ = 'd';
1094: *rbp++ = '0';
1095: bp = rbp; outs(";"); rbp = bp;
1096: *rbp++ = ' ';
1097: *rbp++ = 'b';
1098: *rbp++ = 'y';
1099: *rbp++ = 't';
1100: *rbp++ = 'e';
1101: *rbp++ = ' ';
1102: *rbp++ = '0';
1103: *rbp++ = 'x';
1104: *rbp++ = '6';
1105: *rbp++ = 'e';
1106: *rbp++ = ',';
1107: *rbp++ = '-';
1108: *rbp++ = '6';
1109: bp = rbp;
1110: outs("\n");
1111: break;
1112: case 612: L612: /* # label */
1113: emitspecial(a);
1114: break;
1115: case 613: L613: /* # nop */
1116: emitspecial(a);
1117: break;
1118: case 614: L614: /* # ret */
1119: emitspecial(a);
1120: break;
1121: case 615: L615: /* %f.%t %x,%z */
1122: rbp = bp;
1123: assert(a->x.ints[3]);
1124: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1125: *rbp++ = '.';
1126: assert(a->x.ints[4]);
1127: cp = asmstr4[a->x.ints[4]];
1128: *rbp++ = cp[0];
1129: *rbp++ = ' ';
1130: rbp = emit0(rbp, a, 1);
1131: *rbp++ = ',';
1132: rbp = emit0(rbp, a, 2);
1133: bp = rbp;
1134: outs("\n");
1135: break;
1136: case 616: L616: /* %f.%t %x,%z |mod */
1137: rbp = bp;
1138: assert(a->x.ints[3]);
1139: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1140: *rbp++ = '.';
1141: assert(a->x.ints[4]);
1142: cp = asmstr4[a->x.ints[4]];
1143: *rbp++ = cp[0];
1144: *rbp++ = ' ';
1145: rbp = emit0(rbp, a, 1);
1146: *rbp++ = ',';
1147: rbp = emit0(rbp, a, 2);
1148: *rbp++ = ' ';
1149: *rbp++ = '|';
1150: *rbp++ = 'm';
1151: *rbp++ = 'o';
1152: *rbp++ = 'd';
1153: bp = rbp;
1154: outs("\n");
1155: break;
1156: case 617: L617: /* %f.%t %z */
1157: rbp = bp;
1158: assert(a->x.ints[3]);
1159: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1160: *rbp++ = '.';
1161: assert(a->x.ints[4]);
1162: cp = asmstr4[a->x.ints[4]];
1163: *rbp++ = cp[0];
1164: *rbp++ = ' ';
1165: rbp = emit0(rbp, a, 2);
1166: bp = rbp;
1167: outs("\n");
1168: break;
1169: case 618: L618: /* clr.%t %z */
1170: rbp = bp;
1171: *rbp++ = 'c';
1172: *rbp++ = 'l';
1173: *rbp++ = 'r';
1174: *rbp++ = '.';
1175: assert(a->x.ints[4]);
1176: cp = asmstr4[a->x.ints[4]];
1177: *rbp++ = cp[0];
1178: *rbp++ = ' ';
1179: rbp = emit0(rbp, a, 2);
1180: bp = rbp;
1181: outs("\n");
1182: break;
1183: case 619: L619: /* cmp.%t %y,%x; b%f %z */
1184: rbp = bp;
1185: *rbp++ = 'c';
1186: *rbp++ = 'm';
1187: *rbp++ = 'p';
1188: *rbp++ = '.';
1189: assert(a->x.ints[4]);
1190: cp = asmstr4[a->x.ints[4]];
1191: *rbp++ = cp[0];
1192: *rbp++ = ' ';
1193: rbp = emit0(rbp, a, 0);
1194: *rbp++ = ',';
1195: rbp = emit0(rbp, a, 1);
1196: bp = rbp; outs(";"); rbp = bp;
1197: *rbp++ = ' ';
1198: *rbp++ = 'b';
1199: assert(a->x.ints[3]);
1200: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1201: *rbp++ = ' ';
1202: rbp = emit0(rbp, a, 2);
1203: bp = rbp;
1204: outs("\n");
1205: break;
1206: case 620: L620: /* bra %z */
1207: rbp = bp;
1208: *rbp++ = 'b';
1209: *rbp++ = 'r';
1210: *rbp++ = 'a';
1211: *rbp++ = ' ';
1212: rbp = emit0(rbp, a, 2);
1213: bp = rbp;
1214: outs("\n");
1215: break;
1216: case 621: L621: /* lea %y,%z */
1217: rbp = bp;
1218: *rbp++ = 'l';
1219: *rbp++ = 'e';
1220: *rbp++ = 'a';
1221: *rbp++ = ' ';
1222: rbp = emit0(rbp, a, 0);
1223: *rbp++ = ',';
1224: rbp = emit0(rbp, a, 2);
1225: bp = rbp;
1226: outs("\n");
1227: break;
1228: case 622: L622: /* mov.%t %y,%z */
1229: rbp = bp;
1230: *rbp++ = 'm';
1231: *rbp++ = 'o';
1232: *rbp++ = 'v';
1233: *rbp++ = '.';
1234: assert(a->x.ints[4]);
1235: cp = asmstr4[a->x.ints[4]];
1236: *rbp++ = cp[0];
1237: *rbp++ = ' ';
1238: rbp = emit0(rbp, a, 0);
1239: *rbp++ = ',';
1240: rbp = emit0(rbp, a, 2);
1241: bp = rbp;
1242: outs("\n");
1243: break;
1244: case 623: L623: /* mov.%t %y,%z; %f.%t %x,%z */
1245: rbp = bp;
1246: *rbp++ = 'm';
1247: *rbp++ = 'o';
1248: *rbp++ = 'v';
1249: *rbp++ = '.';
1250: assert(a->x.ints[4]);
1251: cp = asmstr4[a->x.ints[4]];
1252: *rbp++ = cp[0];
1253: *rbp++ = ' ';
1254: rbp = emit0(rbp, a, 0);
1255: *rbp++ = ',';
1256: rbp = emit0(rbp, a, 2);
1257: bp = rbp; outs(";"); rbp = bp;
1258: *rbp++ = ' ';
1259: assert(a->x.ints[3]);
1260: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1261: *rbp++ = '.';
1262: assert(a->x.ints[4]);
1263: cp = asmstr4[a->x.ints[4]];
1264: *rbp++ = cp[0];
1265: *rbp++ = ' ';
1266: rbp = emit0(rbp, a, 1);
1267: *rbp++ = ',';
1268: rbp = emit0(rbp, a, 2);
1269: bp = rbp;
1270: outs("\n");
1271: break;
1272: case 624: L624: /* mov.%t %y,%z; %f.%t %z */
1273: rbp = bp;
1274: *rbp++ = 'm';
1275: *rbp++ = 'o';
1276: *rbp++ = 'v';
1277: *rbp++ = '.';
1278: assert(a->x.ints[4]);
1279: cp = asmstr4[a->x.ints[4]];
1280: *rbp++ = cp[0];
1281: *rbp++ = ' ';
1282: rbp = emit0(rbp, a, 0);
1283: *rbp++ = ',';
1284: rbp = emit0(rbp, a, 2);
1285: bp = rbp; outs(";"); rbp = bp;
1286: *rbp++ = ' ';
1287: assert(a->x.ints[3]);
1288: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1289: *rbp++ = '.';
1290: assert(a->x.ints[4]);
1291: cp = asmstr4[a->x.ints[4]];
1292: *rbp++ = cp[0];
1293: *rbp++ = ' ';
1294: rbp = emit0(rbp, a, 2);
1295: bp = rbp;
1296: outs("\n");
1297: break;
1298: case 625: L625: /* tst.%t %y; b%f %z */
1299: rbp = bp;
1300: *rbp++ = 't';
1301: *rbp++ = 's';
1302: *rbp++ = 't';
1303: *rbp++ = '.';
1304: assert(a->x.ints[4]);
1305: cp = asmstr4[a->x.ints[4]];
1306: *rbp++ = cp[0];
1307: *rbp++ = ' ';
1308: rbp = emit0(rbp, a, 0);
1309: bp = rbp; outs(";"); rbp = bp;
1310: *rbp++ = ' ';
1311: *rbp++ = 'b';
1312: assert(a->x.ints[3]);
1313: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1314: *rbp++ = ' ';
1315: rbp = emit0(rbp, a, 2);
1316: bp = rbp;
1317: outs("\n");
1318: break;
1319: case 626: L626: /* %z: */
1320: rbp = bp;
1321: rbp = emit0(rbp, a, 2);
1322: *rbp++ = ':';
1323: bp = rbp;
1324: outs("\n");
1325: break;
1326: case 627: L627: /* ext.w %z; ext.l %z */
1327: rbp = bp;
1328: *rbp++ = 'e';
1329: *rbp++ = 'x';
1330: *rbp++ = 't';
1331: *rbp++ = '.';
1332: *rbp++ = 'w';
1333: *rbp++ = ' ';
1334: rbp = emit0(rbp, a, 2);
1335: bp = rbp; outs(";"); rbp = bp;
1336: *rbp++ = ' ';
1337: *rbp++ = 'e';
1338: *rbp++ = 'x';
1339: *rbp++ = 't';
1340: *rbp++ = '.';
1341: *rbp++ = 'l';
1342: *rbp++ = ' ';
1343: rbp = emit0(rbp, a, 2);
1344: bp = rbp;
1345: outs("\n");
1346: break;
1347: case 628: L628: /* %f.%t %x,%z; ext.w %z */
1348: rbp = bp;
1349: assert(a->x.ints[3]);
1350: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1351: *rbp++ = '.';
1352: assert(a->x.ints[4]);
1353: cp = asmstr4[a->x.ints[4]];
1354: *rbp++ = cp[0];
1355: *rbp++ = ' ';
1356: rbp = emit0(rbp, a, 1);
1357: *rbp++ = ',';
1358: rbp = emit0(rbp, a, 2);
1359: bp = rbp; outs(";"); rbp = bp;
1360: *rbp++ = ' ';
1361: *rbp++ = 'e';
1362: *rbp++ = 'x';
1363: *rbp++ = 't';
1364: *rbp++ = '.';
1365: *rbp++ = 'w';
1366: *rbp++ = ' ';
1367: rbp = emit0(rbp, a, 2);
1368: bp = rbp;
1369: outs("\n");
1370: break;
1371: case 629: L629: /* %f.%t %x,%z; and &0xffff,%z */
1372: rbp = bp;
1373: assert(a->x.ints[3]);
1374: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1375: *rbp++ = '.';
1376: assert(a->x.ints[4]);
1377: cp = asmstr4[a->x.ints[4]];
1378: *rbp++ = cp[0];
1379: *rbp++ = ' ';
1380: rbp = emit0(rbp, a, 1);
1381: *rbp++ = ',';
1382: rbp = emit0(rbp, a, 2);
1383: bp = rbp; outs(";"); rbp = bp;
1384: *rbp++ = ' ';
1385: *rbp++ = 'a';
1386: *rbp++ = 'n';
1387: *rbp++ = 'd';
1388: *rbp++ = ' ';
1389: *rbp++ = '&';
1390: *rbp++ = '0';
1391: *rbp++ = 'x';
1392: *rbp++ = 'f';
1393: *rbp++ = 'f';
1394: *rbp++ = 'f';
1395: *rbp++ = 'f';
1396: *rbp++ = ',';
1397: rbp = emit0(rbp, a, 2);
1398: bp = rbp;
1399: outs("\n");
1400: break;
1401: case 630: L630: /* %f.%t %x,%z; swap; ext.w %z */
1402: rbp = bp;
1403: assert(a->x.ints[3]);
1404: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1405: *rbp++ = '.';
1406: assert(a->x.ints[4]);
1407: cp = asmstr4[a->x.ints[4]];
1408: *rbp++ = cp[0];
1409: *rbp++ = ' ';
1410: rbp = emit0(rbp, a, 1);
1411: *rbp++ = ',';
1412: rbp = emit0(rbp, a, 2);
1413: bp = rbp; outs(";"); rbp = bp;
1414: *rbp++ = ' ';
1415: *rbp++ = 's';
1416: *rbp++ = 'w';
1417: *rbp++ = 'a';
1418: *rbp++ = 'p';
1419: bp = rbp; outs(";"); rbp = bp;
1420: *rbp++ = ' ';
1421: *rbp++ = 'e';
1422: *rbp++ = 'x';
1423: *rbp++ = 't';
1424: *rbp++ = '.';
1425: *rbp++ = 'w';
1426: *rbp++ = ' ';
1427: rbp = emit0(rbp, a, 2);
1428: bp = rbp;
1429: outs("\n");
1430: break;
1431: case 631: L631: /* %f.%t %x,%z; swap; and &0xffff,%z */
1432: rbp = bp;
1433: assert(a->x.ints[3]);
1434: for (cp = asmstr3[a->x.ints[3]]; *cp; *rbp++ = *cp++);
1435: *rbp++ = '.';
1436: assert(a->x.ints[4]);
1437: cp = asmstr4[a->x.ints[4]];
1438: *rbp++ = cp[0];
1439: *rbp++ = ' ';
1440: rbp = emit0(rbp, a, 1);
1441: *rbp++ = ',';
1442: rbp = emit0(rbp, a, 2);
1443: bp = rbp; outs(";"); rbp = bp;
1444: *rbp++ = ' ';
1445: *rbp++ = 's';
1446: *rbp++ = 'w';
1447: *rbp++ = 'a';
1448: *rbp++ = 'p';
1449: bp = rbp; outs(";"); rbp = bp;
1450: *rbp++ = ' ';
1451: *rbp++ = 'a';
1452: *rbp++ = 'n';
1453: *rbp++ = 'd';
1454: *rbp++ = ' ';
1455: *rbp++ = '&';
1456: *rbp++ = '0';
1457: *rbp++ = 'x';
1458: *rbp++ = 'f';
1459: *rbp++ = 'f';
1460: *rbp++ = 'f';
1461: *rbp++ = 'f';
1462: *rbp++ = ',';
1463: rbp = emit0(rbp, a, 2);
1464: bp = rbp;
1465: outs("\n");
1466: break;
1467: }
1468: }
1469: }
1470:
1471: void final(a)
1472: register Node a;
1473: {
1474: register int s;
1475: switch (a->op) {
1476: case 608: L608: /* %f%t %x,%z |mod */
1477: dumptree(a, 608);
1478: spill(1, DREG, a);
1479: a->op = 608;
1480: break;
1481: case 609: L609: /* jsr %y */
1482: dumptree(a, 609);
1483: spill(2, DREG, a); spill(3, AREG, a);
1484: a->op = 609;
1485: break;
1486: case 610: L610: /* lea %z,$a1; mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
1487: dumptree(a, 610);
1488: spill(1, DREG, a); spill(3, AREG, a);
1489: a->op = 610;
1490: break;
1491: case 611: L611: /* mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
1492: dumptree(a, 611);
1493: spill(1, DREG, a); spill(3, AREG, a);
1494: a->op = 611;
1495: break;
1496: case 612: L612: /* # label */
1497: dumptree(a, 612);
1498: a->op = 612;
1499: return;
1500: case 613: L613: /* # nop */
1501: dumptree(a, 613);
1502: a->op = 613;
1503: return;
1504: case 614: L614: /* # ret */
1505: dumptree(a, 614);
1506: a->op = 614;
1507: return;
1508: case 615: L615: /* %f.%t %x,%z */
1509: dumptree(a, 615);
1510: /* $a%c */
1511: /* $d%c */
1512: if ("\0\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[2]]) {
1513: if (
1514: !regchain(a)
1515: ) {
1516: goto L623; /* mov.%t %y,%z; %f.%t %x,%z */
1517: }
1518: }
1519: a->op = 615;
1520: break;
1521: case 616: L616: /* %f.%t %x,%z |mod */
1522: dumptree(a, 616);
1523: a->op = 616;
1524: break;
1525: case 617: L617: /* %f.%t %z */
1526: dumptree(a, 617);
1527: /* $a%c */
1528: /* $d%c */
1529: if ("\0\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[2]]) {
1530: if (
1531: !regchain(a)
1532: ) {
1533: goto L624; /* mov.%t %y,%z; %f.%t %z */
1534: }
1535: }
1536: a->op = 617;
1537: break;
1538: case 618: L618: /* clr.%t %z */
1539: dumptree(a, 618);
1540: a->op = 618;
1541: break;
1542: case 619: L619: /* cmp.%t %y,%x; b%f %z */
1543: dumptree(a, 619);
1544: /* $d%n */
1545: /* $d%c */
1546: /* _%c */
1547: /* _%c($a%n) */
1548: /* %c($a%n) */
1549: /* %c($sp) */
1550: /* %c($a6) */
1551: /* ($a%n) */
1552: if ("\0\0\0\1\1\1\1\0\0\1\1\1\1\0\0\0\0\0\0\0"[a->x.ints[0]]) {
1553: if (
1554: a->x.ints[1] == 15 /* &%c */
1555: && a->syms[1]->x.name == sym[3].x.name /* 0 */
1556: ) {
1557: goto L625; /* tst.%t %y; b%f %z */
1558: }
1559: }
1560: a->op = 619;
1561: break;
1562: case 620: L620: /* bra %z */
1563: dumptree(a, 620);
1564: a->op = 620;
1565: break;
1566: case 621: L621: /* lea %y,%z */
1567: dumptree(a, 621);
1568: a->op = 621;
1569: break;
1570: case 622: L622: /* mov.%t %y,%z */
1571: dumptree(a, 622);
1572: if (
1573: a->x.ints[0] == 15 /* &%c */
1574: && a->syms[0]->x.name == sym[3].x.name /* 0 */
1575: ) {
1576: /* $d%n */
1577: /* $d%c */
1578: /* _%c */
1579: /* _%c($a%n) */
1580: /* %c($a%n) */
1581: /* %c($sp) */
1582: /* %c($a6) */
1583: /* ($a%n) */
1584: if ("\0\0\0\1\1\1\1\0\0\1\1\1\1\0\0\0\0\0\0\0"[a->x.ints[2]]) {
1585: goto L618; /* clr.%t %z */
1586: }
1587: }
1588: if (
1589: a->x.ints[0] == a->x.ints[2]
1590: && a->kids[0] == a->kids[2]
1591: && a->kids[3] == a->kids[5]
1592: && a->syms[0] == a->syms[2]
1593: ) {
1594: goto L613; /* # nop */
1595: }
1596: a->op = 622;
1597: break;
1598: case 623: L623: /* mov.%t %y,%z; %f.%t %x,%z */
1599: dumptree(a, 623);
1600: a->op = 623;
1601: break;
1602: case 624: L624: /* mov.%t %y,%z; %f.%t %z */
1603: dumptree(a, 624);
1604: a->op = 624;
1605: break;
1606: case 625: L625: /* tst.%t %y; b%f %z */
1607: dumptree(a, 625);
1608: a->op = 625;
1609: break;
1610: case 626: L626: /* %z: */
1611: dumptree(a, 626);
1612: a->op = 626;
1613: break;
1614: case 627: L627: /* ext.w %z; ext.l %z */
1615: dumptree(a, 627);
1616: a->op = 627;
1617: break;
1618: case 628: L628: /* %f.%t %x,%z; ext.w %z */
1619: dumptree(a, 628);
1620: a->op = 628;
1621: break;
1622: case 629: L629: /* %f.%t %x,%z; and &0xffff,%z */
1623: dumptree(a, 629);
1624: a->op = 629;
1625: break;
1626: case 630: L630: /* %f.%t %x,%z; swap; ext.w %z */
1627: dumptree(a, 630);
1628: a->op = 630;
1629: break;
1630: case 631: L631: /* %f.%t %x,%z; swap; and &0xffff,%z */
1631: dumptree(a, 631);
1632: a->op = 631;
1633: break;
1634: }
1635: }
1636:
1637: void rewrite(a)
1638: register Node a;
1639: {
1640: register Node b, c;
1641: register int s;
1642: assert(a);
1643: switch (a->op) {
1644: case 19: L19: /* CNSTC */
1645: dumptree(a, a->op);
1646: setreg(a, rmap[C]);
1647: a->x.ints[2] = 4; /* $d%c */
1648: a->x.ints[0] = 15; /* &%c */
1649: a->x.ints[4] = 1; /* b */
1650: goto L622; /* mov.%t %y,%z */
1651: case 20: L20: /* CNSTS */
1652: dumptree(a, a->op);
1653: setreg(a, rmap[S]);
1654: a->x.ints[2] = 4; /* $d%c */
1655: a->x.ints[0] = 15; /* &%c */
1656: a->x.ints[4] = 2; /* w */
1657: goto L622; /* mov.%t %y,%z */
1658: case 21: L21: /* CNSTI */
1659: dumptree(a, a->op);
1660: setreg(a, rmap[I]);
1661: a->x.ints[2] = 4; /* $d%c */
1662: a->x.ints[0] = 15; /* &%c */
1663: a->x.ints[4] = 3; /* l */
1664: goto L622; /* mov.%t %y,%z */
1665: case 22: L22: /* CNSTU */
1666: dumptree(a, a->op);
1667: setreg(a, rmap[U]);
1668: a->x.ints[2] = 4; /* $d%c */
1669: a->x.ints[0] = 15; /* &%c */
1670: a->x.ints[4] = 3; /* l */
1671: goto L622; /* mov.%t %y,%z */
1672: case 23: L23: /* CNSTP */
1673: dumptree(a, a->op);
1674: setreg(a, rmap[P]);
1675: a->x.ints[2] = 2; /* $a%c */
1676: a->x.ints[0] = 15; /* &%c */
1677: a->x.ints[4] = 3; /* l */
1678: goto L622; /* mov.%t %y,%z */
1679: case 37: L37: /* ARGI */
1680: dumptree(a, a->op);
1681: doarg(a);
1682: rewrite(a->kids[0]);
1683: a->x.ints[2] = 10; /* %c($sp) */
1684: a->x.ints[0] = 3; /* $d%n */
1685: a->x.ints[4] = 3; /* l */
1686: goto L622; /* mov.%t %y,%z */
1687: case 39: L39: /* ARGP */
1688: dumptree(a, a->op);
1689: doarg(a);
1690: rewrite(a->kids[0]);
1691: a->x.ints[2] = 10; /* %c($sp) */
1692: a->x.ints[0] = 1; /* $a%n */
1693: a->x.ints[4] = 3; /* l */
1694: goto L622; /* mov.%t %y,%z */
1695: case 41: L41: /* ARGB */
1696: dumptree(a, a->op);
1697: doarg(a);
1698: rewrite(a->kids[0]);
1699: a->syms[1] = a->syms[0];
1700: a->x.ints[1] = 16; /* &%c/2 */
1701: a->x.ints[2] = 10; /* %c($sp) */
1702: rtarget(a,0,a0);
1703: goto L610; /* lea %z,$a1; mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
1704: case 51: L51: /* ASGNC */
1705: dumptree(a, a->op);
1706: rewrite(a->kids[0]);
1707: rewrite(a->kids[1]);
1708: a->kids[2] = a->kids[0];
1709: a->kids[0] = 0;
1710: a->x.ints[2] = 12; /* ($a%n) */
1711: a->x.ints[0] = 3; /* $d%n */
1712: a->x.ints[4] = 1; /* b */
1713: a->kids[0] = a->kids[1];
1714: a->kids[1] = 0;
1715: goto L622; /* mov.%t %y,%z */
1716: case 52: L52: /* ASGNS */
1717: dumptree(a, a->op);
1718: rewrite(a->kids[0]);
1719: rewrite(a->kids[1]);
1720: a->kids[2] = a->kids[0];
1721: a->kids[0] = 0;
1722: a->x.ints[2] = 12; /* ($a%n) */
1723: a->x.ints[0] = 3; /* $d%n */
1724: a->x.ints[4] = 2; /* w */
1725: a->kids[0] = a->kids[1];
1726: a->kids[1] = 0;
1727: goto L622; /* mov.%t %y,%z */
1728: case 53: L53: /* ASGNI */
1729: dumptree(a, a->op);
1730: rewrite(a->kids[0]);
1731: rewrite(a->kids[1]);
1732: a->kids[2] = a->kids[0];
1733: a->kids[0] = 0;
1734: a->x.ints[2] = 12; /* ($a%n) */
1735: a->x.ints[0] = 3; /* $d%n */
1736: a->x.ints[4] = 3; /* l */
1737: a->kids[0] = a->kids[1];
1738: a->kids[1] = 0;
1739: goto L622; /* mov.%t %y,%z */
1740: case 55: L55: /* ASGNP */
1741: dumptree(a, a->op);
1742: rewrite(a->kids[0]);
1743: rewrite(a->kids[1]);
1744: a->kids[2] = a->kids[0];
1745: a->kids[0] = 0;
1746: a->x.ints[2] = 12; /* ($a%n) */
1747: a->x.ints[0] = 1; /* $a%n */
1748: a->x.ints[4] = 3; /* l */
1749: a->kids[0] = a->kids[1];
1750: a->kids[1] = 0;
1751: goto L622; /* mov.%t %y,%z */
1752: case 57: L57: /* ASGNB */
1753: dumptree(a, a->op);
1754: rewrite(a->kids[0]);
1755: rewrite(a->kids[1]);
1756: a->syms[1] = a->syms[0];
1757: a->x.ints[1] = 16; /* &%c/2 */
1758: rtarget(a,0,a1), rtarget(a,1,a0);
1759: a->kids[2] = a->kids[0];
1760: a->kids[0] = 0;
1761: a->kids[0] = a->kids[1];
1762: a->kids[1] = 0;
1763: goto L611; /* mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
1764: case 67: L67: /* INDIRC */
1765: dumptree(a, a->op);
1766: setreg(a, rmap[C]);
1767: rewrite(a->kids[0]);
1768: a->x.ints[2] = 4; /* $d%c */
1769: a->x.ints[0] = 12; /* ($a%n) */
1770: a->x.ints[4] = 1; /* b */
1771: goto L622; /* mov.%t %y,%z */
1772: case 68: L68: /* INDIRS */
1773: dumptree(a, a->op);
1774: setreg(a, rmap[S]);
1775: rewrite(a->kids[0]);
1776: a->x.ints[2] = 4; /* $d%c */
1777: a->x.ints[0] = 12; /* ($a%n) */
1778: a->x.ints[4] = 2; /* w */
1779: goto L622; /* mov.%t %y,%z */
1780: case 69: L69: /* INDIRI */
1781: dumptree(a, a->op);
1782: setreg(a, rmap[I]);
1783: rewrite(a->kids[0]);
1784: a->x.ints[2] = 4; /* $d%c */
1785: a->x.ints[0] = 12; /* ($a%n) */
1786: a->x.ints[4] = 3; /* l */
1787: goto L622; /* mov.%t %y,%z */
1788: case 71: L71: /* INDIRP */
1789: dumptree(a, a->op);
1790: setreg(a, rmap[P]);
1791: rewrite(a->kids[0]);
1792: a->x.ints[2] = 2; /* $a%c */
1793: a->x.ints[0] = 12; /* ($a%n) */
1794: a->x.ints[4] = 3; /* l */
1795: goto L622; /* mov.%t %y,%z */
1796: case 73: L73: /* INDIRB */
1797: dumptree(a, a->op);
1798: setreg(a, rmap[P]);
1799: rewrite(a->kids[0]);
1800: a->x.ints[2] = 2; /* $a%c */
1801: a->x.ints[0] = 1; /* $a%n */
1802: a->x.ints[4] = 3; /* l */
1803: goto L622; /* mov.%t %y,%z */
1804: case 85: L85: /* CVCI */
1805: dumptree(a, a->op);
1806: setreg(a, rmap[I]);
1807: rewrite(a->kids[0]);
1808: a->x.ints[2] = 4; /* $d%c */
1809: a->x.ints[2] = 4; /* $d%c */
1810: a->x.ints[0] = 3; /* $d%n */
1811: a->x.zap0=1;
1812: goto L627; /* ext.w %z; ext.l %z */
1813: case 86: L86: /* CVCU */
1814: dumptree(a, a->op);
1815: setreg(a, rmap[U]);
1816: rewrite(a->kids[0]);
1817: a->x.ints[2] = 4; /* $d%c */
1818: a->syms[1] = &sym[1]; /* 0xff */
1819: a->x.ints[1] = 15; /* &%c */
1820: a->x.ints[4] = 3; /* l */
1821: a->x.ints[3] = 2; /* and */
1822: a->x.ints[0] = 3; /* $d%n */
1823: a->x.zap0=1;
1824: goto L615; /* %f.%t %x,%z */
1825: case 131: L131: /* CVIC */
1826: dumptree(a, a->op);
1827: setreg(a, rmap[C]);
1828: rewrite(a->kids[0]);
1829: a->x.ints[2] = 4; /* $d%c */
1830: a->x.ints[0] = 3; /* $d%n */
1831: a->x.ints[4] = 1; /* b */
1832: goto L622; /* mov.%t %y,%z */
1833: case 132: L132: /* CVIS */
1834: dumptree(a, a->op);
1835: setreg(a, rmap[S]);
1836: rewrite(a->kids[0]);
1837: a->x.ints[2] = 4; /* $d%c */
1838: a->x.ints[0] = 3; /* $d%n */
1839: a->x.ints[4] = 2; /* w */
1840: goto L622; /* mov.%t %y,%z */
1841: case 134: L134: /* CVIU */
1842: dumptree(a, a->op);
1843: setreg(a, rmap[U]);
1844: rewrite(a->kids[0]);
1845: a->x.ints[2] = 4; /* $d%c */
1846: a->x.ints[0] = 3; /* $d%n */
1847: a->x.ints[4] = 3; /* l */
1848: goto L622; /* mov.%t %y,%z */
1849: case 150: L150: /* CVPU */
1850: dumptree(a, a->op);
1851: setreg(a, rmap[U]);
1852: rewrite(a->kids[0]);
1853: a->x.ints[2] = 4; /* $d%c */
1854: a->x.ints[0] = 1; /* $a%n */
1855: a->x.ints[4] = 3; /* l */
1856: goto L622; /* mov.%t %y,%z */
1857: case 165: L165: /* CVSI */
1858: dumptree(a, a->op);
1859: setreg(a, rmap[I]);
1860: rewrite(a->kids[0]);
1861: a->x.ints[2] = 4; /* $d%c */
1862: a->x.ints[4] = 3; /* l */
1863: a->x.ints[3] = 11; /* ext */
1864: a->x.ints[0] = 3; /* $d%n */
1865: a->x.zap0=1;
1866: goto L617; /* %f.%t %z */
1867: case 166: L166: /* CVSU */
1868: dumptree(a, a->op);
1869: setreg(a, rmap[U]);
1870: rewrite(a->kids[0]);
1871: a->x.ints[2] = 4; /* $d%c */
1872: a->syms[1] = &sym[2]; /* 0xffff */
1873: a->x.ints[1] = 15; /* &%c */
1874: a->x.ints[4] = 3; /* l */
1875: a->x.ints[3] = 2; /* and */
1876: a->x.ints[0] = 3; /* $d%n */
1877: a->x.zap0=1;
1878: goto L615; /* %f.%t %x,%z */
1879: case 179: L179: /* CVUC */
1880: dumptree(a, a->op);
1881: setreg(a, rmap[C]);
1882: rewrite(a->kids[0]);
1883: a->x.ints[2] = 4; /* $d%c */
1884: a->x.ints[0] = 3; /* $d%n */
1885: a->x.ints[4] = 1; /* b */
1886: goto L622; /* mov.%t %y,%z */
1887: case 180: L180: /* CVUS */
1888: dumptree(a, a->op);
1889: setreg(a, rmap[S]);
1890: rewrite(a->kids[0]);
1891: a->x.ints[2] = 4; /* $d%c */
1892: a->x.ints[0] = 3; /* $d%n */
1893: a->x.ints[4] = 2; /* w */
1894: goto L622; /* mov.%t %y,%z */
1895: case 181: L181: /* CVUI */
1896: dumptree(a, a->op);
1897: setreg(a, rmap[I]);
1898: rewrite(a->kids[0]);
1899: a->x.ints[2] = 4; /* $d%c */
1900: a->x.ints[0] = 3; /* $d%n */
1901: a->x.ints[4] = 3; /* l */
1902: goto L622; /* mov.%t %y,%z */
1903: case 183: L183: /* CVUP */
1904: dumptree(a, a->op);
1905: setreg(a, rmap[P]);
1906: rewrite(a->kids[0]);
1907: a->x.ints[2] = 2; /* $a%c */
1908: a->x.ints[0] = 3; /* $d%n */
1909: a->x.ints[4] = 3; /* l */
1910: goto L622; /* mov.%t %y,%z */
1911: case 197: L197: /* NEGI */
1912: dumptree(a, a->op);
1913: setreg(a, rmap[I]);
1914: rewrite(a->kids[0]);
1915: a->x.ints[2] = 4; /* $d%c */
1916: a->x.ints[4] = 3; /* l */
1917: a->x.ints[3] = 23; /* neg */
1918: a->x.ints[0] = 3; /* $d%n */
1919: a->x.zap0=1;
1920: goto L617; /* %f.%t %z */
1921: case 213: L213: /* CALLI */
1922: dumptree(a, a->op);
1923: setreg(a, rmap[I]);
1924: docall(a);
1925: rewrite(a->kids[0]);
1926: a->x.ints[0] = 12; /* ($a%n) */
1927: setreg(a,d0);
1928: goto L609; /* jsr %y */
1929: case 216: L216: /* CALLV */
1930: dumptree(a, a->op);
1931: docall(a);
1932: rewrite(a->kids[0]);
1933: a->x.ints[0] = 12; /* ($a%n) */
1934: setreg(a,d0);
1935: goto L609; /* jsr %y */
1936: case 217: L217: /* CALLB */
1937: dumptree(a, a->op);
1938: docall(a);
1939: rewrite(a->kids[0]);
1940: rewrite(a->kids[1]);
1941: a->x.ints[0] = 12; /* ($a%n) */
1942: rtarget(a,1,a1), setreg(a,d0);
1943: goto L609; /* jsr %y */
1944: case 227: L227: /* LOADC */
1945: case 228: L228: /* LOADS */
1946: case 229: L229: /* LOADI */
1947: case 230: L230: /* LOADU */
1948: dumptree(a, a->op);
1949: rewrite(a->kids[0]);
1950: a->x.ints[2] = 4; /* $d%c */
1951: a->x.ints[0] = 3; /* $d%n */
1952: a->x.ints[4] = 3; /* l */
1953: goto L622; /* mov.%t %y,%z */
1954: case 231: L231: /* LOADP */
1955: dumptree(a, a->op);
1956: rewrite(a->kids[0]);
1957: a->x.ints[2] = 2; /* $a%c */
1958: a->x.ints[0] = 1; /* $a%n */
1959: a->x.ints[4] = 3; /* l */
1960: goto L622; /* mov.%t %y,%z */
1961: case 233: L233: /* LOADB */
1962: dumptree(a, a->op);
1963: rewrite(a->kids[0]);
1964: a->x.ints[2] = 2; /* $a%c */
1965: a->x.ints[0] = 1; /* $a%n */
1966: a->x.ints[4] = 3; /* l */
1967: goto L622; /* mov.%t %y,%z */
1968: case 245: L245: /* RETI */
1969: dumptree(a, a->op);
1970: rewrite(a->kids[0]);
1971: rtarget(a,0,d0);
1972: goto L614; /* # ret */
1973: case 248: L248: /* RETV */
1974: dumptree(a, a->op);
1975: goto L614; /* # ret */
1976: case 263: L263: /* ADDRGP */
1977: dumptree(a, a->op);
1978: setreg(a, rmap[P]);
1979: a->x.ints[2] = 2; /* $a%c */
1980: a->x.ints[0] = 5; /* _%c */
1981: goto L621; /* lea %y,%z */
1982: case 279: L279: /* ADDRFP */
1983: dumptree(a, a->op);
1984: setreg(a, rmap[P]);
1985: a->x.ints[2] = 2; /* $a%c */
1986: a->x.ints[0] = 11; /* %c($a6) */
1987: goto L621; /* lea %y,%z */
1988: case 295: L295: /* ADDRLP */
1989: dumptree(a, a->op);
1990: setreg(a, rmap[P]);
1991: a->x.ints[2] = 2; /* $a%c */
1992: a->x.ints[0] = 11; /* %c($a6) */
1993: goto L621; /* lea %y,%z */
1994: case 309: L309: /* ADDI */
1995: dumptree(a, a->op);
1996: setreg(a, rmap[I]);
1997: rewrite(a->kids[0]);
1998: rewrite(a->kids[1]);
1999: a->x.ints[2] = 4; /* $d%c */
2000: a->x.ints[1] = 3; /* $d%n */
2001: a->x.ints[4] = 3; /* l */
2002: a->x.ints[3] = 1; /* add */
2003: a->x.ints[0] = 3; /* $d%n */
2004: a->x.zap0=1;
2005: goto L615; /* %f.%t %x,%z */
2006: case 310: L310: /* ADDU */
2007: dumptree(a, a->op);
2008: setreg(a, rmap[U]);
2009: rewrite(a->kids[0]);
2010: rewrite(a->kids[1]);
2011: a->x.ints[2] = 4; /* $d%c */
2012: a->x.ints[1] = 3; /* $d%n */
2013: a->x.ints[4] = 3; /* l */
2014: a->x.ints[3] = 1; /* add */
2015: a->x.ints[0] = 3; /* $d%n */
2016: a->x.zap0=1;
2017: goto L615; /* %f.%t %x,%z */
2018: case 311: L311: /* ADDP */
2019: dumptree(a, a->op);
2020: setreg(a, rmap[P]);
2021: rewrite(a->kids[0]);
2022: rewrite(a->kids[1]);
2023: a->x.ints[2] = 2; /* $a%c */
2024: a->x.ints[1] = 3; /* $d%n */
2025: a->x.ints[4] = 3; /* l */
2026: a->x.ints[3] = 1; /* add */
2027: a->x.ints[0] = 1; /* $a%n */
2028: a->x.zap0=1;
2029: goto L615; /* %f.%t %x,%z */
2030: case 325: L325: /* SUBI */
2031: dumptree(a, a->op);
2032: setreg(a, rmap[I]);
2033: rewrite(a->kids[0]);
2034: rewrite(a->kids[1]);
2035: a->x.ints[2] = 4; /* $d%c */
2036: a->x.ints[1] = 3; /* $d%n */
2037: a->x.ints[4] = 3; /* l */
2038: a->x.ints[3] = 26; /* sub */
2039: a->x.ints[0] = 3; /* $d%n */
2040: a->x.zap0=1;
2041: goto L615; /* %f.%t %x,%z */
2042: case 326: L326: /* SUBU */
2043: dumptree(a, a->op);
2044: setreg(a, rmap[U]);
2045: rewrite(a->kids[0]);
2046: rewrite(a->kids[1]);
2047: a->x.ints[2] = 4; /* $d%c */
2048: a->x.ints[1] = 3; /* $d%n */
2049: a->x.ints[4] = 3; /* l */
2050: a->x.ints[3] = 26; /* sub */
2051: a->x.ints[0] = 3; /* $d%n */
2052: a->x.zap0=1;
2053: goto L615; /* %f.%t %x,%z */
2054: case 327: L327: /* SUBP */
2055: dumptree(a, a->op);
2056: setreg(a, rmap[P]);
2057: rewrite(a->kids[0]);
2058: rewrite(a->kids[1]);
2059: a->x.ints[2] = 2; /* $a%c */
2060: a->x.ints[1] = 3; /* $d%n */
2061: a->x.ints[4] = 3; /* l */
2062: a->x.ints[3] = 26; /* sub */
2063: a->x.ints[0] = 1; /* $a%n */
2064: a->x.zap0=1;
2065: goto L615; /* %f.%t %x,%z */
2066: case 341: L341: /* LSHI */
2067: dumptree(a, a->op);
2068: setreg(a, rmap[I]);
2069: rewrite(a->kids[0]);
2070: rewrite(a->kids[1]);
2071: a->x.ints[2] = 4; /* $d%c */
2072: a->x.ints[1] = 3; /* $d%n */
2073: a->x.ints[4] = 3; /* l */
2074: a->x.ints[3] = 3; /* asl */
2075: a->x.ints[0] = 3; /* $d%n */
2076: a->x.zap0=1;
2077: goto L615; /* %f.%t %x,%z */
2078: case 342: L342: /* LSHU */
2079: dumptree(a, a->op);
2080: setreg(a, rmap[U]);
2081: rewrite(a->kids[0]);
2082: rewrite(a->kids[1]);
2083: a->x.ints[2] = 4; /* $d%c */
2084: a->x.ints[1] = 3; /* $d%n */
2085: a->x.ints[4] = 3; /* l */
2086: a->x.ints[3] = 17; /* lsl */
2087: a->x.ints[0] = 3; /* $d%n */
2088: a->x.zap0=1;
2089: goto L615; /* %f.%t %x,%z */
2090: case 357: L357: /* MODI */
2091: dumptree(a, a->op);
2092: setreg(a, rmap[I]);
2093: rewrite(a->kids[0]);
2094: rewrite(a->kids[1]);
2095: a->x.ints[2] = 4; /* $d%c */
2096: a->x.ints[1] = 3; /* $d%n */
2097: a->x.ints[4] = 2; /* w */
2098: a->x.ints[3] = 7; /* divs */
2099: a->x.ints[0] = 3; /* $d%n */
2100: a->x.zap0=1;
2101: goto L630; /* %f.%t %x,%z; swap; ext.w %z */
2102: case 358: L358: /* MODU */
2103: dumptree(a, a->op);
2104: setreg(a, rmap[U]);
2105: rewrite(a->kids[0]);
2106: rewrite(a->kids[1]);
2107: a->x.ints[2] = 4; /* $d%c */
2108: a->x.ints[1] = 3; /* $d%n */
2109: a->x.ints[4] = 2; /* w */
2110: a->x.ints[3] = 8; /* divu */
2111: a->x.ints[0] = 3; /* $d%n */
2112: a->x.zap0=1;
2113: goto L631; /* %f.%t %x,%z; swap; and &0xffff,%z */
2114: case 373: L373: /* RSHI */
2115: dumptree(a, a->op);
2116: setreg(a, rmap[I]);
2117: rewrite(a->kids[0]);
2118: rewrite(a->kids[1]);
2119: a->x.ints[2] = 4; /* $d%c */
2120: a->x.ints[1] = 3; /* $d%n */
2121: a->x.ints[4] = 3; /* l */
2122: a->x.ints[3] = 4; /* asr */
2123: a->x.ints[0] = 3; /* $d%n */
2124: a->x.zap0=1;
2125: goto L615; /* %f.%t %x,%z */
2126: case 374: L374: /* RSHU */
2127: dumptree(a, a->op);
2128: setreg(a, rmap[U]);
2129: rewrite(a->kids[0]);
2130: rewrite(a->kids[1]);
2131: a->x.ints[2] = 4; /* $d%c */
2132: a->x.ints[1] = 3; /* $d%n */
2133: a->x.ints[4] = 3; /* l */
2134: a->x.ints[3] = 18; /* lsr */
2135: a->x.ints[0] = 3; /* $d%n */
2136: a->x.zap0=1;
2137: goto L615; /* %f.%t %x,%z */
2138: case 390: L390: /* BANDU */
2139: dumptree(a, a->op);
2140: setreg(a, rmap[U]);
2141: rewrite(a->kids[0]);
2142: rewrite(a->kids[1]);
2143: a->x.ints[2] = 4; /* $d%c */
2144: a->x.ints[1] = 3; /* $d%n */
2145: a->x.ints[4] = 3; /* l */
2146: a->x.ints[3] = 2; /* and */
2147: a->x.ints[0] = 3; /* $d%n */
2148: a->x.zap0=1;
2149: goto L615; /* %f.%t %x,%z */
2150: case 406: L406: /* BCOMU */
2151: dumptree(a, a->op);
2152: setreg(a, rmap[U]);
2153: rewrite(a->kids[0]);
2154: a->x.ints[2] = 4; /* $d%c */
2155: a->x.ints[4] = 3; /* l */
2156: a->x.ints[3] = 24; /* not */
2157: a->x.ints[0] = 3; /* $d%n */
2158: a->x.zap0=1;
2159: goto L617; /* %f.%t %z */
2160: case 422: L422: /* BORU */
2161: dumptree(a, a->op);
2162: setreg(a, rmap[U]);
2163: rewrite(a->kids[0]);
2164: rewrite(a->kids[1]);
2165: a->x.ints[2] = 4; /* $d%c */
2166: a->x.ints[1] = 3; /* $d%n */
2167: a->x.ints[4] = 3; /* l */
2168: a->x.ints[3] = 25; /* or */
2169: a->x.ints[0] = 3; /* $d%n */
2170: a->x.zap0=1;
2171: goto L615; /* %f.%t %x,%z */
2172: case 438: L438: /* BXORU */
2173: dumptree(a, a->op);
2174: setreg(a, rmap[U]);
2175: rewrite(a->kids[0]);
2176: rewrite(a->kids[1]);
2177: a->x.ints[2] = 4; /* $d%c */
2178: a->x.ints[1] = 3; /* $d%n */
2179: a->x.ints[4] = 3; /* l */
2180: a->x.ints[3] = 9; /* eor */
2181: a->x.ints[0] = 3; /* $d%n */
2182: a->x.zap0=1;
2183: goto L615; /* %f.%t %x,%z */
2184: case 453: L453: /* DIVI */
2185: dumptree(a, a->op);
2186: setreg(a, rmap[I]);
2187: rewrite(a->kids[0]);
2188: rewrite(a->kids[1]);
2189: a->x.ints[2] = 4; /* $d%c */
2190: a->x.ints[1] = 3; /* $d%n */
2191: a->x.ints[4] = 2; /* w */
2192: a->x.ints[3] = 7; /* divs */
2193: a->x.ints[0] = 3; /* $d%n */
2194: a->x.zap0=1;
2195: goto L628; /* %f.%t %x,%z; ext.w %z */
2196: case 454: L454: /* DIVU */
2197: dumptree(a, a->op);
2198: setreg(a, rmap[U]);
2199: rewrite(a->kids[0]);
2200: rewrite(a->kids[1]);
2201: a->x.ints[2] = 4; /* $d%c */
2202: a->x.ints[1] = 3; /* $d%n */
2203: a->x.ints[4] = 2; /* w */
2204: a->x.ints[3] = 8; /* divu */
2205: a->x.ints[0] = 3; /* $d%n */
2206: a->x.zap0=1;
2207: goto L629; /* %f.%t %x,%z; and &0xffff,%z */
2208: case 469: L469: /* MULI */
2209: dumptree(a, a->op);
2210: setreg(a, rmap[I]);
2211: rewrite(a->kids[0]);
2212: rewrite(a->kids[1]);
2213: a->x.ints[2] = 4; /* $d%c */
2214: a->x.ints[1] = 3; /* $d%n */
2215: a->x.ints[4] = 2; /* w */
2216: a->x.ints[3] = 20; /* muls */
2217: a->x.ints[0] = 3; /* $d%n */
2218: a->x.zap0=1;
2219: goto L615; /* %f.%t %x,%z */
2220: case 470: L470: /* MULU */
2221: dumptree(a, a->op);
2222: setreg(a, rmap[U]);
2223: rewrite(a->kids[0]);
2224: rewrite(a->kids[1]);
2225: a->x.ints[2] = 4; /* $d%c */
2226: a->x.ints[1] = 3; /* $d%n */
2227: a->x.ints[4] = 2; /* w */
2228: a->x.ints[3] = 21; /* mulu */
2229: a->x.ints[0] = 3; /* $d%n */
2230: a->x.zap0=1;
2231: goto L615; /* %f.%t %x,%z */
2232: case 485: L485: /* EQI */
2233: case 486: L486: /* EQU */
2234: dumptree(a, a->op);
2235: rewrite(a->kids[0]);
2236: rewrite(a->kids[1]);
2237: a->syms[2] = a->syms[0];
2238: a->x.ints[2] = 18; /* L%c */
2239: a->x.ints[3] = 10; /* eq */
2240: a->x.ints[1] = 3; /* $d%n */
2241: a->x.ints[0] = 3; /* $d%n */
2242: a->x.ints[4] = 3; /* l */
2243: goto L619; /* cmp.%t %y,%x; b%f %z */
2244: case 501: L501: /* GEI */
2245: dumptree(a, a->op);
2246: rewrite(a->kids[0]);
2247: rewrite(a->kids[1]);
2248: a->syms[2] = a->syms[0];
2249: a->x.ints[2] = 18; /* L%c */
2250: a->x.ints[3] = 12; /* ge */
2251: a->x.ints[1] = 3; /* $d%n */
2252: a->x.ints[0] = 3; /* $d%n */
2253: a->x.ints[4] = 3; /* l */
2254: goto L619; /* cmp.%t %y,%x; b%f %z */
2255: case 502: L502: /* GEU */
2256: dumptree(a, a->op);
2257: rewrite(a->kids[0]);
2258: rewrite(a->kids[1]);
2259: a->syms[2] = a->syms[0];
2260: a->x.ints[2] = 18; /* L%c */
2261: a->x.ints[3] = 5; /* cc */
2262: a->x.ints[1] = 3; /* $d%n */
2263: a->x.ints[0] = 3; /* $d%n */
2264: a->x.ints[4] = 3; /* l */
2265: goto L619; /* cmp.%t %y,%x; b%f %z */
2266: case 517: L517: /* GTI */
2267: dumptree(a, a->op);
2268: rewrite(a->kids[0]);
2269: rewrite(a->kids[1]);
2270: a->syms[2] = a->syms[0];
2271: a->x.ints[2] = 18; /* L%c */
2272: a->x.ints[3] = 13; /* gt */
2273: a->x.ints[1] = 3; /* $d%n */
2274: a->x.ints[0] = 3; /* $d%n */
2275: a->x.ints[4] = 3; /* l */
2276: goto L619; /* cmp.%t %y,%x; b%f %z */
2277: case 518: L518: /* GTU */
2278: dumptree(a, a->op);
2279: rewrite(a->kids[0]);
2280: rewrite(a->kids[1]);
2281: a->syms[2] = a->syms[0];
2282: a->x.ints[2] = 18; /* L%c */
2283: a->x.ints[3] = 14; /* hi */
2284: a->x.ints[1] = 3; /* $d%n */
2285: a->x.ints[0] = 3; /* $d%n */
2286: a->x.ints[4] = 3; /* l */
2287: goto L619; /* cmp.%t %y,%x; b%f %z */
2288: case 533: L533: /* LEI */
2289: dumptree(a, a->op);
2290: rewrite(a->kids[0]);
2291: rewrite(a->kids[1]);
2292: a->syms[2] = a->syms[0];
2293: a->x.ints[2] = 18; /* L%c */
2294: a->x.ints[3] = 15; /* le */
2295: a->x.ints[1] = 3; /* $d%n */
2296: a->x.ints[0] = 3; /* $d%n */
2297: a->x.ints[4] = 3; /* l */
2298: goto L619; /* cmp.%t %y,%x; b%f %z */
2299: case 534: L534: /* LEU */
2300: dumptree(a, a->op);
2301: rewrite(a->kids[0]);
2302: rewrite(a->kids[1]);
2303: a->syms[2] = a->syms[0];
2304: a->x.ints[2] = 18; /* L%c */
2305: a->x.ints[3] = 16; /* ls */
2306: a->x.ints[1] = 3; /* $d%n */
2307: a->x.ints[0] = 3; /* $d%n */
2308: a->x.ints[4] = 3; /* l */
2309: goto L619; /* cmp.%t %y,%x; b%f %z */
2310: case 549: L549: /* LTI */
2311: dumptree(a, a->op);
2312: rewrite(a->kids[0]);
2313: rewrite(a->kids[1]);
2314: a->syms[2] = a->syms[0];
2315: a->x.ints[2] = 18; /* L%c */
2316: a->x.ints[3] = 19; /* lt */
2317: a->x.ints[1] = 3; /* $d%n */
2318: a->x.ints[0] = 3; /* $d%n */
2319: a->x.ints[4] = 3; /* l */
2320: goto L619; /* cmp.%t %y,%x; b%f %z */
2321: case 550: L550: /* LTU */
2322: dumptree(a, a->op);
2323: rewrite(a->kids[0]);
2324: rewrite(a->kids[1]);
2325: a->syms[2] = a->syms[0];
2326: a->x.ints[2] = 18; /* L%c */
2327: a->x.ints[3] = 6; /* cs */
2328: a->x.ints[1] = 3; /* $d%n */
2329: a->x.ints[0] = 3; /* $d%n */
2330: a->x.ints[4] = 3; /* l */
2331: goto L619; /* cmp.%t %y,%x; b%f %z */
2332: case 565: L565: /* NEI */
2333: case 566: L566: /* NEU */
2334: dumptree(a, a->op);
2335: rewrite(a->kids[0]);
2336: rewrite(a->kids[1]);
2337: a->syms[2] = a->syms[0];
2338: a->x.ints[2] = 18; /* L%c */
2339: a->x.ints[3] = 22; /* ne */
2340: a->x.ints[1] = 3; /* $d%n */
2341: a->x.ints[0] = 3; /* $d%n */
2342: a->x.ints[4] = 3; /* l */
2343: goto L619; /* cmp.%t %y,%x; b%f %z */
2344: case 584: L584: /* JUMPV */
2345: dumptree(a, a->op);
2346: rewrite(a->kids[0]);
2347: a->kids[2] = a->kids[0];
2348: a->kids[0] = 0;
2349: a->x.ints[2] = 12; /* ($a%n) */
2350: goto L620; /* bra %z */
2351: case 600: L600: /* LABELV */
2352: dumptree(a, a->op);
2353: a->syms[2] = a->syms[0];
2354: a->x.ints[2] = 18; /* L%c */
2355: goto L626; /* %z: */
2356: case 608: L608: /* %f%t %x,%z |mod */
2357: dumptree(a, 608);
2358: a->op = 608;
2359: break;
2360: case 609: L609: /* jsr %y */
2361: dumptree(a, 609);
2362: b = a->kids[0];
2363: if (
2364: a->x.ints[0] == 12 /* ($a%n) */
2365: && b->op == 621 /* lea %y,%z */
2366: ) {
2367: if (
2368: b->x.ints[0] == 5 /* _%c */
2369: ) {
2370: if (--b->count > 0) {
2371: if (c=b->kids[0]) ++c->count;
2372: if (c=b->kids[3]) ++c->count;
2373: }
2374: a->syms[0] = b->syms[0];
2375: a->kids[3] = b->kids[3];
2376: a->x.ints[0] = b->x.ints[0];
2377: a->kids[0] = b->kids[0];
2378: goto L609; /* jsr %y */
2379: }
2380: if (
2381: b->count == 1
2382: ) {
2383: if (--b->count > 0) {
2384: if (c=b->kids[0]) ++c->count;
2385: if (c=b->kids[3]) ++c->count;
2386: }
2387: a->syms[0] = b->syms[0];
2388: a->kids[3] = b->kids[3];
2389: a->x.ints[0] = b->x.ints[0];
2390: a->kids[0] = b->kids[0];
2391: goto L609; /* jsr %y */
2392: }
2393: if (
2394: b->x.ints[0] == 11 /* %c($a6) */
2395: ) {
2396: if (--b->count > 0) {
2397: if (c=b->kids[0]) ++c->count;
2398: if (c=b->kids[3]) ++c->count;
2399: }
2400: a->syms[0] = b->syms[0];
2401: a->kids[3] = b->kids[3];
2402: a->x.ints[0] = b->x.ints[0];
2403: a->kids[0] = b->kids[0];
2404: goto L609; /* jsr %y */
2405: }
2406: }
2407: a->op = 609;
2408: break;
2409: case 610: L610: /* lea %z,$a1; mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
2410: dumptree(a, 610);
2411: a->op = 610;
2412: break;
2413: case 611: L611: /* mov.l %x,$d0; mov.w ($a0)+,($a1)+; sub.l &1,$d0; byte 0x6e,-6 */
2414: dumptree(a, 611);
2415: a->op = 611;
2416: break;
2417: case 612: L612: /* # label */
2418: dumptree(a, 612);
2419: a->op = 612;
2420: break;
2421: case 613: L613: /* # nop */
2422: dumptree(a, 613);
2423: a->op = 613;
2424: break;
2425: case 614: L614: /* # ret */
2426: dumptree(a, 614);
2427: a->op = 614;
2428: break;
2429: case 615: L615: /* %f.%t %x,%z */
2430: dumptree(a, 615);
2431: switch (a->x.ints[3]) {
2432: case 1: /* add */
2433: if (
2434: a->x.ints[4] == 3 /* l */
2435: && a->x.ints[1] == 3 /* $d%n */
2436: && a->x.ints[2] == 2 /* $a%c */
2437: && a->kids[1]->x.ints[2] == 2 /* $a%c */
2438: ) {
2439: a->x.ints[1] = 1; /* $a%n */
2440: a->x.ints[0] = 3; /* $d%n */
2441: goto L615; /* %f.%t %x,%z */
2442: }
2443: if (
2444: a->x.ints[4] == 3 /* l */
2445: ) {
2446: switch (a->x.ints[1]) {
2447: case 1: /* $a%n */
2448: if (
2449: a->x.ints[2] == 2 /* $a%c */
2450: && a->x.ints[0] == 3 /* $d%n */
2451: ) {
2452: a->x.ints[0] = 19; /* 0($a%n,$d%i.l) */
2453: a->kids[3] = a->kids[0];
2454: a->kids[0] = 0;
2455: a->kids[0] = a->kids[1];
2456: a->kids[1] = 0;
2457: goto L621; /* lea %y,%z */
2458: }
2459: break;
2460: case 15: /* &%c */
2461: if (
2462: a->x.ints[2] == 2 /* $a%c */
2463: && a->x.ints[0] == 1 /* $a%n */
2464: && range(getint(a->syms[1]),16)
2465: ) {
2466: a->x.ints[0] = 9; /* %c($a%n) */
2467: a->syms[0] = a->syms[1];
2468: a->x.zap0=0;
2469: goto L621; /* lea %y,%z */
2470: }
2471: break;
2472: }
2473: }
2474: /* $a%n */
2475: /* $d%n */
2476: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[1]]) {
2477: /* $a%c */
2478: /* $d%c */
2479: if ("\0\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[2]]) {
2480: b = a->kids[1];
2481: if (
2482: b->op == 622 /* mov.%t %y,%z */
2483: && a->x.ints[4] == b->x.ints[4]
2484: ) {
2485: /* $d%n */
2486: /* &%c */
2487: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
2488: if (--b->count > 0) {
2489: if (c=b->kids[0]) ++c->count;
2490: if (c=b->kids[3]) ++c->count;
2491: }
2492: a->syms[1] = b->syms[0];
2493: a->kids[4] = b->kids[3];
2494: a->x.ints[1] = b->x.ints[0];
2495: a->kids[1] = b->kids[0];
2496: goto L615; /* %f.%t %x,%z */
2497: }
2498: if (
2499: b->count == 1
2500: ) {
2501: if (--b->count > 0) {
2502: if (c=b->kids[0]) ++c->count;
2503: if (c=b->kids[3]) ++c->count;
2504: }
2505: a->syms[1] = b->syms[0];
2506: a->kids[4] = b->kids[3];
2507: a->x.ints[1] = b->x.ints[0];
2508: a->kids[1] = b->kids[0];
2509: goto L615; /* %f.%t %x,%z */
2510: }
2511: /* $a%n */
2512: /* $d%n */
2513: /* &%c */
2514: /* &_%c */
2515: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2516: if (--b->count > 0) {
2517: if (c=b->kids[0]) ++c->count;
2518: if (c=b->kids[3]) ++c->count;
2519: }
2520: a->syms[1] = b->syms[0];
2521: a->kids[4] = b->kids[3];
2522: a->x.ints[1] = b->x.ints[0];
2523: a->kids[1] = b->kids[0];
2524: goto L615; /* %f.%t %x,%z */
2525: }
2526: if (
2527: b->count == 1
2528: ) {
2529: if (--b->count > 0) {
2530: if (c=b->kids[0]) ++c->count;
2531: if (c=b->kids[3]) ++c->count;
2532: }
2533: a->syms[1] = b->syms[0];
2534: a->kids[4] = b->kids[3];
2535: a->x.ints[1] = b->x.ints[0];
2536: a->kids[1] = b->kids[0];
2537: goto L615; /* %f.%t %x,%z */
2538: }
2539: /* $a%n */
2540: /* $d%n */
2541: /* &%c */
2542: /* &_%c */
2543: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2544: if (--b->count > 0) {
2545: if (c=b->kids[0]) ++c->count;
2546: if (c=b->kids[3]) ++c->count;
2547: }
2548: a->syms[1] = b->syms[0];
2549: a->kids[4] = b->kids[3];
2550: a->x.ints[1] = b->x.ints[0];
2551: a->kids[1] = b->kids[0];
2552: goto L615; /* %f.%t %x,%z */
2553: }
2554: if (
2555: b->count == 1
2556: ) {
2557: if (--b->count > 0) {
2558: if (c=b->kids[0]) ++c->count;
2559: if (c=b->kids[3]) ++c->count;
2560: }
2561: a->syms[1] = b->syms[0];
2562: a->kids[4] = b->kids[3];
2563: a->x.ints[1] = b->x.ints[0];
2564: a->kids[1] = b->kids[0];
2565: goto L615; /* %f.%t %x,%z */
2566: }
2567: /* $a%n */
2568: /* $d%n */
2569: /* &%c */
2570: /* &_%c */
2571: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2572: if (--b->count > 0) {
2573: if (c=b->kids[0]) ++c->count;
2574: if (c=b->kids[3]) ++c->count;
2575: }
2576: a->syms[1] = b->syms[0];
2577: a->kids[4] = b->kids[3];
2578: a->x.ints[1] = b->x.ints[0];
2579: a->kids[1] = b->kids[0];
2580: goto L615; /* %f.%t %x,%z */
2581: }
2582: if (
2583: b->count == 1
2584: ) {
2585: if (--b->count > 0) {
2586: if (c=b->kids[0]) ++c->count;
2587: if (c=b->kids[3]) ++c->count;
2588: }
2589: a->syms[1] = b->syms[0];
2590: a->kids[4] = b->kids[3];
2591: a->x.ints[1] = b->x.ints[0];
2592: a->kids[1] = b->kids[0];
2593: goto L615; /* %f.%t %x,%z */
2594: }
2595: /* $a%n */
2596: /* &_%c */
2597: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
2598: if (--b->count > 0) {
2599: if (c=b->kids[0]) ++c->count;
2600: if (c=b->kids[3]) ++c->count;
2601: }
2602: a->syms[1] = b->syms[0];
2603: a->kids[4] = b->kids[3];
2604: a->x.ints[1] = b->x.ints[0];
2605: a->kids[1] = b->kids[0];
2606: goto L615; /* %f.%t %x,%z */
2607: }
2608: }
2609: }
2610: }
2611: break;
2612: case 2: /* and */
2613: b = a->kids[1];
2614: if (
2615: a->x.ints[1] == 3 /* $d%n */
2616: && a->x.ints[2] == 4 /* $d%c */
2617: && b->op == 622 /* mov.%t %y,%z */
2618: ) {
2619: /* $d%n */
2620: /* $d%c */
2621: /* _%c */
2622: /* _%c($a%n) */
2623: /* %c($a%n) */
2624: /* %c($sp) */
2625: /* %c($a6) */
2626: /* ($a%n) */
2627: /* &%c */
2628: /* &_%c */
2629: if ("\0\0\0\1\1\1\1\0\0\1\1\1\1\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2630: if (
2631: a->x.ints[4] == b->x.ints[4]
2632: ) {
2633: /* $d%n */
2634: /* &%c */
2635: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
2636: if (--b->count > 0) {
2637: if (c=b->kids[0]) ++c->count;
2638: if (c=b->kids[3]) ++c->count;
2639: }
2640: a->syms[1] = b->syms[0];
2641: a->kids[4] = b->kids[3];
2642: a->x.ints[1] = b->x.ints[0];
2643: a->kids[1] = b->kids[0];
2644: goto L615; /* %f.%t %x,%z */
2645: }
2646: if (
2647: b->count == 1
2648: ) {
2649: if (--b->count > 0) {
2650: if (c=b->kids[0]) ++c->count;
2651: if (c=b->kids[3]) ++c->count;
2652: }
2653: a->syms[1] = b->syms[0];
2654: a->kids[4] = b->kids[3];
2655: a->x.ints[1] = b->x.ints[0];
2656: a->kids[1] = b->kids[0];
2657: goto L615; /* %f.%t %x,%z */
2658: }
2659: /* $a%n */
2660: /* $d%n */
2661: /* &%c */
2662: /* &_%c */
2663: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2664: if (--b->count > 0) {
2665: if (c=b->kids[0]) ++c->count;
2666: if (c=b->kids[3]) ++c->count;
2667: }
2668: a->syms[1] = b->syms[0];
2669: a->kids[4] = b->kids[3];
2670: a->x.ints[1] = b->x.ints[0];
2671: a->kids[1] = b->kids[0];
2672: goto L615; /* %f.%t %x,%z */
2673: }
2674: if (
2675: b->count == 1
2676: ) {
2677: if (--b->count > 0) {
2678: if (c=b->kids[0]) ++c->count;
2679: if (c=b->kids[3]) ++c->count;
2680: }
2681: a->syms[1] = b->syms[0];
2682: a->kids[4] = b->kids[3];
2683: a->x.ints[1] = b->x.ints[0];
2684: a->kids[1] = b->kids[0];
2685: goto L615; /* %f.%t %x,%z */
2686: }
2687: /* $a%n */
2688: /* $d%n */
2689: /* &%c */
2690: /* &_%c */
2691: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2692: if (--b->count > 0) {
2693: if (c=b->kids[0]) ++c->count;
2694: if (c=b->kids[3]) ++c->count;
2695: }
2696: a->syms[1] = b->syms[0];
2697: a->kids[4] = b->kids[3];
2698: a->x.ints[1] = b->x.ints[0];
2699: a->kids[1] = b->kids[0];
2700: goto L615; /* %f.%t %x,%z */
2701: }
2702: if (
2703: b->count == 1
2704: ) {
2705: if (--b->count > 0) {
2706: if (c=b->kids[0]) ++c->count;
2707: if (c=b->kids[3]) ++c->count;
2708: }
2709: a->syms[1] = b->syms[0];
2710: a->kids[4] = b->kids[3];
2711: a->x.ints[1] = b->x.ints[0];
2712: a->kids[1] = b->kids[0];
2713: goto L615; /* %f.%t %x,%z */
2714: }
2715: /* $a%n */
2716: /* $d%n */
2717: /* &%c */
2718: /* &_%c */
2719: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2720: if (--b->count > 0) {
2721: if (c=b->kids[0]) ++c->count;
2722: if (c=b->kids[3]) ++c->count;
2723: }
2724: a->syms[1] = b->syms[0];
2725: a->kids[4] = b->kids[3];
2726: a->x.ints[1] = b->x.ints[0];
2727: a->kids[1] = b->kids[0];
2728: goto L615; /* %f.%t %x,%z */
2729: }
2730: if (
2731: b->count == 1
2732: ) {
2733: if (--b->count > 0) {
2734: if (c=b->kids[0]) ++c->count;
2735: if (c=b->kids[3]) ++c->count;
2736: }
2737: a->syms[1] = b->syms[0];
2738: a->kids[4] = b->kids[3];
2739: a->x.ints[1] = b->x.ints[0];
2740: a->kids[1] = b->kids[0];
2741: goto L615; /* %f.%t %x,%z */
2742: }
2743: /* $a%n */
2744: /* $d%n */
2745: /* &%c */
2746: /* &_%c */
2747: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2748: if (--b->count > 0) {
2749: if (c=b->kids[0]) ++c->count;
2750: if (c=b->kids[3]) ++c->count;
2751: }
2752: a->syms[1] = b->syms[0];
2753: a->kids[4] = b->kids[3];
2754: a->x.ints[1] = b->x.ints[0];
2755: a->kids[1] = b->kids[0];
2756: goto L615; /* %f.%t %x,%z */
2757: }
2758: if (
2759: b->count == 1
2760: ) {
2761: if (--b->count > 0) {
2762: if (c=b->kids[0]) ++c->count;
2763: if (c=b->kids[3]) ++c->count;
2764: }
2765: a->syms[1] = b->syms[0];
2766: a->kids[4] = b->kids[3];
2767: a->x.ints[1] = b->x.ints[0];
2768: a->kids[1] = b->kids[0];
2769: goto L615; /* %f.%t %x,%z */
2770: }
2771: /* $a%n */
2772: /* $d%n */
2773: /* &%c */
2774: /* &_%c */
2775: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2776: if (--b->count > 0) {
2777: if (c=b->kids[0]) ++c->count;
2778: if (c=b->kids[3]) ++c->count;
2779: }
2780: a->syms[1] = b->syms[0];
2781: a->kids[4] = b->kids[3];
2782: a->x.ints[1] = b->x.ints[0];
2783: a->kids[1] = b->kids[0];
2784: goto L615; /* %f.%t %x,%z */
2785: }
2786: if (
2787: b->count == 1
2788: ) {
2789: if (--b->count > 0) {
2790: if (c=b->kids[0]) ++c->count;
2791: if (c=b->kids[3]) ++c->count;
2792: }
2793: a->syms[1] = b->syms[0];
2794: a->kids[4] = b->kids[3];
2795: a->x.ints[1] = b->x.ints[0];
2796: a->kids[1] = b->kids[0];
2797: goto L615; /* %f.%t %x,%z */
2798: }
2799: /* $a%n */
2800: /* $d%n */
2801: /* &%c */
2802: /* &_%c */
2803: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2804: if (--b->count > 0) {
2805: if (c=b->kids[0]) ++c->count;
2806: if (c=b->kids[3]) ++c->count;
2807: }
2808: a->syms[1] = b->syms[0];
2809: a->kids[4] = b->kids[3];
2810: a->x.ints[1] = b->x.ints[0];
2811: a->kids[1] = b->kids[0];
2812: goto L615; /* %f.%t %x,%z */
2813: }
2814: if (
2815: b->count == 1
2816: ) {
2817: if (--b->count > 0) {
2818: if (c=b->kids[0]) ++c->count;
2819: if (c=b->kids[3]) ++c->count;
2820: }
2821: a->syms[1] = b->syms[0];
2822: a->kids[4] = b->kids[3];
2823: a->x.ints[1] = b->x.ints[0];
2824: a->kids[1] = b->kids[0];
2825: goto L615; /* %f.%t %x,%z */
2826: }
2827: /* $a%n */
2828: /* $d%n */
2829: /* &%c */
2830: /* &_%c */
2831: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2832: if (--b->count > 0) {
2833: if (c=b->kids[0]) ++c->count;
2834: if (c=b->kids[3]) ++c->count;
2835: }
2836: a->syms[1] = b->syms[0];
2837: a->kids[4] = b->kids[3];
2838: a->x.ints[1] = b->x.ints[0];
2839: a->kids[1] = b->kids[0];
2840: goto L615; /* %f.%t %x,%z */
2841: }
2842: if (
2843: b->count == 1
2844: ) {
2845: if (--b->count > 0) {
2846: if (c=b->kids[0]) ++c->count;
2847: if (c=b->kids[3]) ++c->count;
2848: }
2849: a->syms[1] = b->syms[0];
2850: a->kids[4] = b->kids[3];
2851: a->x.ints[1] = b->x.ints[0];
2852: a->kids[1] = b->kids[0];
2853: goto L615; /* %f.%t %x,%z */
2854: }
2855: /* $a%n */
2856: /* $d%n */
2857: /* &%c */
2858: /* &_%c */
2859: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2860: if (--b->count > 0) {
2861: if (c=b->kids[0]) ++c->count;
2862: if (c=b->kids[3]) ++c->count;
2863: }
2864: a->syms[1] = b->syms[0];
2865: a->kids[4] = b->kids[3];
2866: a->x.ints[1] = b->x.ints[0];
2867: a->kids[1] = b->kids[0];
2868: goto L615; /* %f.%t %x,%z */
2869: }
2870: if (
2871: b->count == 1
2872: ) {
2873: if (--b->count > 0) {
2874: if (c=b->kids[0]) ++c->count;
2875: if (c=b->kids[3]) ++c->count;
2876: }
2877: a->syms[1] = b->syms[0];
2878: a->kids[4] = b->kids[3];
2879: a->x.ints[1] = b->x.ints[0];
2880: a->kids[1] = b->kids[0];
2881: goto L615; /* %f.%t %x,%z */
2882: }
2883: /* $a%n */
2884: /* $d%n */
2885: /* &%c */
2886: /* &_%c */
2887: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
2888: if (--b->count > 0) {
2889: if (c=b->kids[0]) ++c->count;
2890: if (c=b->kids[3]) ++c->count;
2891: }
2892: a->syms[1] = b->syms[0];
2893: a->kids[4] = b->kids[3];
2894: a->x.ints[1] = b->x.ints[0];
2895: a->kids[1] = b->kids[0];
2896: goto L615; /* %f.%t %x,%z */
2897: }
2898: if (
2899: b->count == 1
2900: ) {
2901: if (--b->count > 0) {
2902: if (c=b->kids[0]) ++c->count;
2903: if (c=b->kids[3]) ++c->count;
2904: }
2905: a->syms[1] = b->syms[0];
2906: a->kids[4] = b->kids[3];
2907: a->x.ints[1] = b->x.ints[0];
2908: a->kids[1] = b->kids[0];
2909: goto L615; /* %f.%t %x,%z */
2910: }
2911: /* $a%n */
2912: /* &_%c */
2913: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
2914: if (--b->count > 0) {
2915: if (c=b->kids[0]) ++c->count;
2916: if (c=b->kids[3]) ++c->count;
2917: }
2918: a->syms[1] = b->syms[0];
2919: a->kids[4] = b->kids[3];
2920: a->x.ints[1] = b->x.ints[0];
2921: a->kids[1] = b->kids[0];
2922: goto L615; /* %f.%t %x,%z */
2923: }
2924: }
2925: }
2926: }
2927: break;
2928: case 3: /* asl */
2929: case 4: /* asr */
2930: case 17: /* lsl */
2931: case 18: /* lsr */
2932: b = a->kids[1];
2933: if (
2934: a->x.ints[1] == 3 /* $d%n */
2935: && a->x.ints[2] == 4 /* $d%c */
2936: && b->op == 622 /* mov.%t %y,%z */
2937: && b->x.ints[0] == 15 /* &%c */
2938: ) {
2939: if (
2940: b->syms[0]->x.name == sym[7].x.name /* 4 */
2941: ) {
2942: if (--b->count > 0) {
2943: if (c=b->kids[0]) ++c->count;
2944: if (c=b->kids[3]) ++c->count;
2945: }
2946: a->syms[1] = b->syms[0];
2947: a->kids[4] = b->kids[3];
2948: a->x.ints[1] = b->x.ints[0];
2949: a->kids[1] = b->kids[0];
2950: goto L615; /* %f.%t %x,%z */
2951: }
2952: if (
2953: b->syms[0]->x.name == sym[11].x.name /* 8 */
2954: ) {
2955: if (--b->count > 0) {
2956: if (c=b->kids[0]) ++c->count;
2957: if (c=b->kids[3]) ++c->count;
2958: }
2959: a->syms[1] = b->syms[0];
2960: a->kids[4] = b->kids[3];
2961: a->x.ints[1] = b->x.ints[0];
2962: a->kids[1] = b->kids[0];
2963: goto L615; /* %f.%t %x,%z */
2964: }
2965: if (
2966: b->syms[0]->x.name == sym[6].x.name /* 3 */
2967: ) {
2968: if (--b->count > 0) {
2969: if (c=b->kids[0]) ++c->count;
2970: if (c=b->kids[3]) ++c->count;
2971: }
2972: a->syms[1] = b->syms[0];
2973: a->kids[4] = b->kids[3];
2974: a->x.ints[1] = b->x.ints[0];
2975: a->kids[1] = b->kids[0];
2976: goto L615; /* %f.%t %x,%z */
2977: }
2978: if (
2979: b->syms[0]->x.name == sym[10].x.name /* 7 */
2980: ) {
2981: if (--b->count > 0) {
2982: if (c=b->kids[0]) ++c->count;
2983: if (c=b->kids[3]) ++c->count;
2984: }
2985: a->syms[1] = b->syms[0];
2986: a->kids[4] = b->kids[3];
2987: a->x.ints[1] = b->x.ints[0];
2988: a->kids[1] = b->kids[0];
2989: goto L615; /* %f.%t %x,%z */
2990: }
2991: if (
2992: b->syms[0]->x.name == sym[5].x.name /* 2 */
2993: ) {
2994: if (--b->count > 0) {
2995: if (c=b->kids[0]) ++c->count;
2996: if (c=b->kids[3]) ++c->count;
2997: }
2998: a->syms[1] = b->syms[0];
2999: a->kids[4] = b->kids[3];
3000: a->x.ints[1] = b->x.ints[0];
3001: a->kids[1] = b->kids[0];
3002: goto L615; /* %f.%t %x,%z */
3003: }
3004: if (
3005: b->syms[0]->x.name == sym[9].x.name /* 6 */
3006: ) {
3007: if (--b->count > 0) {
3008: if (c=b->kids[0]) ++c->count;
3009: if (c=b->kids[3]) ++c->count;
3010: }
3011: a->syms[1] = b->syms[0];
3012: a->kids[4] = b->kids[3];
3013: a->x.ints[1] = b->x.ints[0];
3014: a->kids[1] = b->kids[0];
3015: goto L615; /* %f.%t %x,%z */
3016: }
3017: if (
3018: b->syms[0]->x.name == sym[4].x.name /* 1 */
3019: ) {
3020: if (--b->count > 0) {
3021: if (c=b->kids[0]) ++c->count;
3022: if (c=b->kids[3]) ++c->count;
3023: }
3024: a->syms[1] = b->syms[0];
3025: a->kids[4] = b->kids[3];
3026: a->x.ints[1] = b->x.ints[0];
3027: a->kids[1] = b->kids[0];
3028: goto L615; /* %f.%t %x,%z */
3029: }
3030: if (
3031: b->syms[0]->x.name == sym[8].x.name /* 5 */
3032: ) {
3033: if (--b->count > 0) {
3034: if (c=b->kids[0]) ++c->count;
3035: if (c=b->kids[3]) ++c->count;
3036: }
3037: a->syms[1] = b->syms[0];
3038: a->kids[4] = b->kids[3];
3039: a->x.ints[1] = b->x.ints[0];
3040: a->kids[1] = b->kids[0];
3041: goto L615; /* %f.%t %x,%z */
3042: }
3043: }
3044: break;
3045: case 25: /* or */
3046: b = a->kids[1];
3047: if (
3048: a->x.ints[1] == 3 /* $d%n */
3049: && a->x.ints[2] == 4 /* $d%c */
3050: && b->op == 622 /* mov.%t %y,%z */
3051: ) {
3052: /* $d%n */
3053: /* $d%c */
3054: /* _%c */
3055: /* _%c($a%n) */
3056: /* %c($a%n) */
3057: /* %c($sp) */
3058: /* %c($a6) */
3059: /* ($a%n) */
3060: /* &%c */
3061: /* &_%c */
3062: if ("\0\0\0\1\1\1\1\0\0\1\1\1\1\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3063: if (
3064: a->x.ints[4] == b->x.ints[4]
3065: ) {
3066: /* $d%n */
3067: /* &%c */
3068: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
3069: if (--b->count > 0) {
3070: if (c=b->kids[0]) ++c->count;
3071: if (c=b->kids[3]) ++c->count;
3072: }
3073: a->syms[1] = b->syms[0];
3074: a->kids[4] = b->kids[3];
3075: a->x.ints[1] = b->x.ints[0];
3076: a->kids[1] = b->kids[0];
3077: goto L615; /* %f.%t %x,%z */
3078: }
3079: if (
3080: b->count == 1
3081: ) {
3082: if (--b->count > 0) {
3083: if (c=b->kids[0]) ++c->count;
3084: if (c=b->kids[3]) ++c->count;
3085: }
3086: a->syms[1] = b->syms[0];
3087: a->kids[4] = b->kids[3];
3088: a->x.ints[1] = b->x.ints[0];
3089: a->kids[1] = b->kids[0];
3090: goto L615; /* %f.%t %x,%z */
3091: }
3092: /* $a%n */
3093: /* $d%n */
3094: /* &%c */
3095: /* &_%c */
3096: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3097: if (--b->count > 0) {
3098: if (c=b->kids[0]) ++c->count;
3099: if (c=b->kids[3]) ++c->count;
3100: }
3101: a->syms[1] = b->syms[0];
3102: a->kids[4] = b->kids[3];
3103: a->x.ints[1] = b->x.ints[0];
3104: a->kids[1] = b->kids[0];
3105: goto L615; /* %f.%t %x,%z */
3106: }
3107: if (
3108: b->count == 1
3109: ) {
3110: if (--b->count > 0) {
3111: if (c=b->kids[0]) ++c->count;
3112: if (c=b->kids[3]) ++c->count;
3113: }
3114: a->syms[1] = b->syms[0];
3115: a->kids[4] = b->kids[3];
3116: a->x.ints[1] = b->x.ints[0];
3117: a->kids[1] = b->kids[0];
3118: goto L615; /* %f.%t %x,%z */
3119: }
3120: /* $a%n */
3121: /* $d%n */
3122: /* &%c */
3123: /* &_%c */
3124: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3125: if (--b->count > 0) {
3126: if (c=b->kids[0]) ++c->count;
3127: if (c=b->kids[3]) ++c->count;
3128: }
3129: a->syms[1] = b->syms[0];
3130: a->kids[4] = b->kids[3];
3131: a->x.ints[1] = b->x.ints[0];
3132: a->kids[1] = b->kids[0];
3133: goto L615; /* %f.%t %x,%z */
3134: }
3135: if (
3136: b->count == 1
3137: ) {
3138: if (--b->count > 0) {
3139: if (c=b->kids[0]) ++c->count;
3140: if (c=b->kids[3]) ++c->count;
3141: }
3142: a->syms[1] = b->syms[0];
3143: a->kids[4] = b->kids[3];
3144: a->x.ints[1] = b->x.ints[0];
3145: a->kids[1] = b->kids[0];
3146: goto L615; /* %f.%t %x,%z */
3147: }
3148: /* $a%n */
3149: /* $d%n */
3150: /* &%c */
3151: /* &_%c */
3152: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3153: if (--b->count > 0) {
3154: if (c=b->kids[0]) ++c->count;
3155: if (c=b->kids[3]) ++c->count;
3156: }
3157: a->syms[1] = b->syms[0];
3158: a->kids[4] = b->kids[3];
3159: a->x.ints[1] = b->x.ints[0];
3160: a->kids[1] = b->kids[0];
3161: goto L615; /* %f.%t %x,%z */
3162: }
3163: if (
3164: b->count == 1
3165: ) {
3166: if (--b->count > 0) {
3167: if (c=b->kids[0]) ++c->count;
3168: if (c=b->kids[3]) ++c->count;
3169: }
3170: a->syms[1] = b->syms[0];
3171: a->kids[4] = b->kids[3];
3172: a->x.ints[1] = b->x.ints[0];
3173: a->kids[1] = b->kids[0];
3174: goto L615; /* %f.%t %x,%z */
3175: }
3176: /* $a%n */
3177: /* $d%n */
3178: /* &%c */
3179: /* &_%c */
3180: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3181: if (--b->count > 0) {
3182: if (c=b->kids[0]) ++c->count;
3183: if (c=b->kids[3]) ++c->count;
3184: }
3185: a->syms[1] = b->syms[0];
3186: a->kids[4] = b->kids[3];
3187: a->x.ints[1] = b->x.ints[0];
3188: a->kids[1] = b->kids[0];
3189: goto L615; /* %f.%t %x,%z */
3190: }
3191: if (
3192: b->count == 1
3193: ) {
3194: if (--b->count > 0) {
3195: if (c=b->kids[0]) ++c->count;
3196: if (c=b->kids[3]) ++c->count;
3197: }
3198: a->syms[1] = b->syms[0];
3199: a->kids[4] = b->kids[3];
3200: a->x.ints[1] = b->x.ints[0];
3201: a->kids[1] = b->kids[0];
3202: goto L615; /* %f.%t %x,%z */
3203: }
3204: /* $a%n */
3205: /* $d%n */
3206: /* &%c */
3207: /* &_%c */
3208: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3209: if (--b->count > 0) {
3210: if (c=b->kids[0]) ++c->count;
3211: if (c=b->kids[3]) ++c->count;
3212: }
3213: a->syms[1] = b->syms[0];
3214: a->kids[4] = b->kids[3];
3215: a->x.ints[1] = b->x.ints[0];
3216: a->kids[1] = b->kids[0];
3217: goto L615; /* %f.%t %x,%z */
3218: }
3219: if (
3220: b->count == 1
3221: ) {
3222: if (--b->count > 0) {
3223: if (c=b->kids[0]) ++c->count;
3224: if (c=b->kids[3]) ++c->count;
3225: }
3226: a->syms[1] = b->syms[0];
3227: a->kids[4] = b->kids[3];
3228: a->x.ints[1] = b->x.ints[0];
3229: a->kids[1] = b->kids[0];
3230: goto L615; /* %f.%t %x,%z */
3231: }
3232: /* $a%n */
3233: /* $d%n */
3234: /* &%c */
3235: /* &_%c */
3236: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3237: if (--b->count > 0) {
3238: if (c=b->kids[0]) ++c->count;
3239: if (c=b->kids[3]) ++c->count;
3240: }
3241: a->syms[1] = b->syms[0];
3242: a->kids[4] = b->kids[3];
3243: a->x.ints[1] = b->x.ints[0];
3244: a->kids[1] = b->kids[0];
3245: goto L615; /* %f.%t %x,%z */
3246: }
3247: if (
3248: b->count == 1
3249: ) {
3250: if (--b->count > 0) {
3251: if (c=b->kids[0]) ++c->count;
3252: if (c=b->kids[3]) ++c->count;
3253: }
3254: a->syms[1] = b->syms[0];
3255: a->kids[4] = b->kids[3];
3256: a->x.ints[1] = b->x.ints[0];
3257: a->kids[1] = b->kids[0];
3258: goto L615; /* %f.%t %x,%z */
3259: }
3260: /* $a%n */
3261: /* $d%n */
3262: /* &%c */
3263: /* &_%c */
3264: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3265: if (--b->count > 0) {
3266: if (c=b->kids[0]) ++c->count;
3267: if (c=b->kids[3]) ++c->count;
3268: }
3269: a->syms[1] = b->syms[0];
3270: a->kids[4] = b->kids[3];
3271: a->x.ints[1] = b->x.ints[0];
3272: a->kids[1] = b->kids[0];
3273: goto L615; /* %f.%t %x,%z */
3274: }
3275: if (
3276: b->count == 1
3277: ) {
3278: if (--b->count > 0) {
3279: if (c=b->kids[0]) ++c->count;
3280: if (c=b->kids[3]) ++c->count;
3281: }
3282: a->syms[1] = b->syms[0];
3283: a->kids[4] = b->kids[3];
3284: a->x.ints[1] = b->x.ints[0];
3285: a->kids[1] = b->kids[0];
3286: goto L615; /* %f.%t %x,%z */
3287: }
3288: /* $a%n */
3289: /* $d%n */
3290: /* &%c */
3291: /* &_%c */
3292: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3293: if (--b->count > 0) {
3294: if (c=b->kids[0]) ++c->count;
3295: if (c=b->kids[3]) ++c->count;
3296: }
3297: a->syms[1] = b->syms[0];
3298: a->kids[4] = b->kids[3];
3299: a->x.ints[1] = b->x.ints[0];
3300: a->kids[1] = b->kids[0];
3301: goto L615; /* %f.%t %x,%z */
3302: }
3303: if (
3304: b->count == 1
3305: ) {
3306: if (--b->count > 0) {
3307: if (c=b->kids[0]) ++c->count;
3308: if (c=b->kids[3]) ++c->count;
3309: }
3310: a->syms[1] = b->syms[0];
3311: a->kids[4] = b->kids[3];
3312: a->x.ints[1] = b->x.ints[0];
3313: a->kids[1] = b->kids[0];
3314: goto L615; /* %f.%t %x,%z */
3315: }
3316: /* $a%n */
3317: /* $d%n */
3318: /* &%c */
3319: /* &_%c */
3320: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3321: if (--b->count > 0) {
3322: if (c=b->kids[0]) ++c->count;
3323: if (c=b->kids[3]) ++c->count;
3324: }
3325: a->syms[1] = b->syms[0];
3326: a->kids[4] = b->kids[3];
3327: a->x.ints[1] = b->x.ints[0];
3328: a->kids[1] = b->kids[0];
3329: goto L615; /* %f.%t %x,%z */
3330: }
3331: if (
3332: b->count == 1
3333: ) {
3334: if (--b->count > 0) {
3335: if (c=b->kids[0]) ++c->count;
3336: if (c=b->kids[3]) ++c->count;
3337: }
3338: a->syms[1] = b->syms[0];
3339: a->kids[4] = b->kids[3];
3340: a->x.ints[1] = b->x.ints[0];
3341: a->kids[1] = b->kids[0];
3342: goto L615; /* %f.%t %x,%z */
3343: }
3344: /* $a%n */
3345: /* &_%c */
3346: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
3347: if (--b->count > 0) {
3348: if (c=b->kids[0]) ++c->count;
3349: if (c=b->kids[3]) ++c->count;
3350: }
3351: a->syms[1] = b->syms[0];
3352: a->kids[4] = b->kids[3];
3353: a->x.ints[1] = b->x.ints[0];
3354: a->kids[1] = b->kids[0];
3355: goto L615; /* %f.%t %x,%z */
3356: }
3357: }
3358: }
3359: }
3360: break;
3361: case 26: /* sub */
3362: if (
3363: a->x.ints[4] == 3 /* l */
3364: && a->x.ints[1] == 3 /* $d%n */
3365: && a->x.ints[2] == 2 /* $a%c */
3366: && a->kids[1]->x.ints[2] == 2 /* $a%c */
3367: ) {
3368: a->x.ints[1] = 1; /* $a%n */
3369: a->x.ints[2] = 4; /* $d%c */
3370: setreg(a, rmap[I]);
3371: goto L615; /* %f.%t %x,%z */
3372: }
3373: /* $a%n */
3374: /* $d%n */
3375: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[1]]) {
3376: /* $a%c */
3377: /* $d%c */
3378: if ("\0\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[2]]) {
3379: b = a->kids[1];
3380: if (
3381: b->op == 622 /* mov.%t %y,%z */
3382: && a->x.ints[4] == b->x.ints[4]
3383: ) {
3384: /* $d%n */
3385: /* &%c */
3386: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
3387: if (--b->count > 0) {
3388: if (c=b->kids[0]) ++c->count;
3389: if (c=b->kids[3]) ++c->count;
3390: }
3391: a->syms[1] = b->syms[0];
3392: a->kids[4] = b->kids[3];
3393: a->x.ints[1] = b->x.ints[0];
3394: a->kids[1] = b->kids[0];
3395: goto L615; /* %f.%t %x,%z */
3396: }
3397: if (
3398: b->count == 1
3399: ) {
3400: if (--b->count > 0) {
3401: if (c=b->kids[0]) ++c->count;
3402: if (c=b->kids[3]) ++c->count;
3403: }
3404: a->syms[1] = b->syms[0];
3405: a->kids[4] = b->kids[3];
3406: a->x.ints[1] = b->x.ints[0];
3407: a->kids[1] = b->kids[0];
3408: goto L615; /* %f.%t %x,%z */
3409: }
3410: /* $a%n */
3411: /* $d%n */
3412: /* &%c */
3413: /* &_%c */
3414: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3415: if (--b->count > 0) {
3416: if (c=b->kids[0]) ++c->count;
3417: if (c=b->kids[3]) ++c->count;
3418: }
3419: a->syms[1] = b->syms[0];
3420: a->kids[4] = b->kids[3];
3421: a->x.ints[1] = b->x.ints[0];
3422: a->kids[1] = b->kids[0];
3423: goto L615; /* %f.%t %x,%z */
3424: }
3425: if (
3426: b->count == 1
3427: ) {
3428: if (--b->count > 0) {
3429: if (c=b->kids[0]) ++c->count;
3430: if (c=b->kids[3]) ++c->count;
3431: }
3432: a->syms[1] = b->syms[0];
3433: a->kids[4] = b->kids[3];
3434: a->x.ints[1] = b->x.ints[0];
3435: a->kids[1] = b->kids[0];
3436: goto L615; /* %f.%t %x,%z */
3437: }
3438: /* $a%n */
3439: /* $d%n */
3440: /* &%c */
3441: /* &_%c */
3442: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3443: if (--b->count > 0) {
3444: if (c=b->kids[0]) ++c->count;
3445: if (c=b->kids[3]) ++c->count;
3446: }
3447: a->syms[1] = b->syms[0];
3448: a->kids[4] = b->kids[3];
3449: a->x.ints[1] = b->x.ints[0];
3450: a->kids[1] = b->kids[0];
3451: goto L615; /* %f.%t %x,%z */
3452: }
3453: if (
3454: b->count == 1
3455: ) {
3456: if (--b->count > 0) {
3457: if (c=b->kids[0]) ++c->count;
3458: if (c=b->kids[3]) ++c->count;
3459: }
3460: a->syms[1] = b->syms[0];
3461: a->kids[4] = b->kids[3];
3462: a->x.ints[1] = b->x.ints[0];
3463: a->kids[1] = b->kids[0];
3464: goto L615; /* %f.%t %x,%z */
3465: }
3466: /* $a%n */
3467: /* $d%n */
3468: /* &%c */
3469: /* &_%c */
3470: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3471: if (--b->count > 0) {
3472: if (c=b->kids[0]) ++c->count;
3473: if (c=b->kids[3]) ++c->count;
3474: }
3475: a->syms[1] = b->syms[0];
3476: a->kids[4] = b->kids[3];
3477: a->x.ints[1] = b->x.ints[0];
3478: a->kids[1] = b->kids[0];
3479: goto L615; /* %f.%t %x,%z */
3480: }
3481: if (
3482: b->count == 1
3483: ) {
3484: if (--b->count > 0) {
3485: if (c=b->kids[0]) ++c->count;
3486: if (c=b->kids[3]) ++c->count;
3487: }
3488: a->syms[1] = b->syms[0];
3489: a->kids[4] = b->kids[3];
3490: a->x.ints[1] = b->x.ints[0];
3491: a->kids[1] = b->kids[0];
3492: goto L615; /* %f.%t %x,%z */
3493: }
3494: /* $a%n */
3495: /* &_%c */
3496: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
3497: if (--b->count > 0) {
3498: if (c=b->kids[0]) ++c->count;
3499: if (c=b->kids[3]) ++c->count;
3500: }
3501: a->syms[1] = b->syms[0];
3502: a->kids[4] = b->kids[3];
3503: a->x.ints[1] = b->x.ints[0];
3504: a->kids[1] = b->kids[0];
3505: goto L615; /* %f.%t %x,%z */
3506: }
3507: }
3508: }
3509: }
3510: break;
3511: }
3512: a->op = 615;
3513: break;
3514: case 616: L616: /* %f.%t %x,%z |mod */
3515: dumptree(a, 616);
3516: a->op = 616;
3517: break;
3518: case 617: L617: /* %f.%t %z */
3519: dumptree(a, 617);
3520: a->op = 617;
3521: break;
3522: case 618: L618: /* clr.%t %z */
3523: dumptree(a, 618);
3524: a->op = 618;
3525: break;
3526: case 619: L619: /* cmp.%t %y,%x; b%f %z */
3527: dumptree(a, 619);
3528: switch (a->x.ints[0]) {
3529: case 1: /* $a%n */
3530: /* $a%n */
3531: /* $d%n */
3532: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[1]]) {
3533: b = a->kids[1];
3534: if (
3535: b->op == 622 /* mov.%t %y,%z */
3536: && a->x.ints[4] == b->x.ints[4]
3537: ) {
3538: /* $d%n */
3539: /* &%c */
3540: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
3541: if (--b->count > 0) {
3542: if (c=b->kids[0]) ++c->count;
3543: if (c=b->kids[3]) ++c->count;
3544: }
3545: a->syms[1] = b->syms[0];
3546: a->kids[4] = b->kids[3];
3547: a->x.ints[1] = b->x.ints[0];
3548: a->kids[1] = b->kids[0];
3549: goto L619; /* cmp.%t %y,%x; b%f %z */
3550: }
3551: if (
3552: b->count == 1
3553: ) {
3554: if (--b->count > 0) {
3555: if (c=b->kids[0]) ++c->count;
3556: if (c=b->kids[3]) ++c->count;
3557: }
3558: a->syms[1] = b->syms[0];
3559: a->kids[4] = b->kids[3];
3560: a->x.ints[1] = b->x.ints[0];
3561: a->kids[1] = b->kids[0];
3562: goto L619; /* cmp.%t %y,%x; b%f %z */
3563: }
3564: /* $a%n */
3565: /* $d%n */
3566: /* &%c */
3567: /* &_%c */
3568: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3569: if (--b->count > 0) {
3570: if (c=b->kids[0]) ++c->count;
3571: if (c=b->kids[3]) ++c->count;
3572: }
3573: a->syms[1] = b->syms[0];
3574: a->kids[4] = b->kids[3];
3575: a->x.ints[1] = b->x.ints[0];
3576: a->kids[1] = b->kids[0];
3577: goto L619; /* cmp.%t %y,%x; b%f %z */
3578: }
3579: if (
3580: b->count == 1
3581: ) {
3582: if (--b->count > 0) {
3583: if (c=b->kids[0]) ++c->count;
3584: if (c=b->kids[3]) ++c->count;
3585: }
3586: a->syms[1] = b->syms[0];
3587: a->kids[4] = b->kids[3];
3588: a->x.ints[1] = b->x.ints[0];
3589: a->kids[1] = b->kids[0];
3590: goto L619; /* cmp.%t %y,%x; b%f %z */
3591: }
3592: /* $a%n */
3593: /* &_%c */
3594: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
3595: if (--b->count > 0) {
3596: if (c=b->kids[0]) ++c->count;
3597: if (c=b->kids[3]) ++c->count;
3598: }
3599: a->syms[1] = b->syms[0];
3600: a->kids[4] = b->kids[3];
3601: a->x.ints[1] = b->x.ints[0];
3602: a->kids[1] = b->kids[0];
3603: goto L619; /* cmp.%t %y,%x; b%f %z */
3604: }
3605: }
3606: }
3607: b = a->kids[0];
3608: if (
3609: a->x.ints[1] == 15 /* &%c */
3610: && b->op == 622 /* mov.%t %y,%z */
3611: ) {
3612: /* $a%n */
3613: /* $a%c */
3614: /* $d%n */
3615: /* $d%c */
3616: /* _%c */
3617: /* _%c($a%n) */
3618: /* %c($a%n) */
3619: /* %c($sp) */
3620: /* %c($a6) */
3621: /* ($a%n) */
3622: if ("\0\1\1\1\1\1\1\0\0\1\1\1\1\0\0\0\0\0\0\0"[b->x.ints[0]]) {
3623: if (
3624: a->x.ints[4] == b->x.ints[4]
3625: && b->x.ints[0] == 3 /* $d%n */
3626: ) {
3627: if (--b->count > 0) {
3628: if (c=b->kids[0]) ++c->count;
3629: if (c=b->kids[3]) ++c->count;
3630: }
3631: a->syms[0] = b->syms[0];
3632: a->kids[3] = b->kids[3];
3633: a->x.ints[0] = b->x.ints[0];
3634: a->kids[0] = b->kids[0];
3635: goto L619; /* cmp.%t %y,%x; b%f %z */
3636: }
3637: }
3638: }
3639: b = a->kids[0];
3640: if (
3641: a->x.ints[1] == 15 /* &%c */
3642: && b->op == 622 /* mov.%t %y,%z */
3643: ) {
3644: /* $a%n */
3645: /* $a%c */
3646: /* $d%n */
3647: /* $d%c */
3648: /* _%c */
3649: /* _%c($a%n) */
3650: /* %c($a%n) */
3651: /* %c($sp) */
3652: /* %c($a6) */
3653: /* ($a%n) */
3654: if ("\0\1\1\1\1\1\1\0\0\1\1\1\1\0\0\0\0\0\0\0"[b->x.ints[0]]) {
3655: if (
3656: a->x.ints[4] == b->x.ints[4]
3657: && b->count == 1
3658: ) {
3659: if (--b->count > 0) {
3660: if (c=b->kids[0]) ++c->count;
3661: if (c=b->kids[3]) ++c->count;
3662: }
3663: a->syms[0] = b->syms[0];
3664: a->kids[3] = b->kids[3];
3665: a->x.ints[0] = b->x.ints[0];
3666: a->kids[0] = b->kids[0];
3667: goto L619; /* cmp.%t %y,%x; b%f %z */
3668: }
3669: }
3670: }
3671: break;
3672: case 2: /* $a%c */
3673: /* $a%n */
3674: /* $d%n */
3675: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[1]]) {
3676: b = a->kids[1];
3677: if (
3678: b->op == 622 /* mov.%t %y,%z */
3679: && a->x.ints[4] == b->x.ints[4]
3680: ) {
3681: /* $d%n */
3682: /* &%c */
3683: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
3684: if (--b->count > 0) {
3685: if (c=b->kids[0]) ++c->count;
3686: if (c=b->kids[3]) ++c->count;
3687: }
3688: a->syms[1] = b->syms[0];
3689: a->kids[4] = b->kids[3];
3690: a->x.ints[1] = b->x.ints[0];
3691: a->kids[1] = b->kids[0];
3692: goto L619; /* cmp.%t %y,%x; b%f %z */
3693: }
3694: if (
3695: b->count == 1
3696: ) {
3697: if (--b->count > 0) {
3698: if (c=b->kids[0]) ++c->count;
3699: if (c=b->kids[3]) ++c->count;
3700: }
3701: a->syms[1] = b->syms[0];
3702: a->kids[4] = b->kids[3];
3703: a->x.ints[1] = b->x.ints[0];
3704: a->kids[1] = b->kids[0];
3705: goto L619; /* cmp.%t %y,%x; b%f %z */
3706: }
3707: /* $a%n */
3708: /* $d%n */
3709: /* &%c */
3710: /* &_%c */
3711: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3712: if (--b->count > 0) {
3713: if (c=b->kids[0]) ++c->count;
3714: if (c=b->kids[3]) ++c->count;
3715: }
3716: a->syms[1] = b->syms[0];
3717: a->kids[4] = b->kids[3];
3718: a->x.ints[1] = b->x.ints[0];
3719: a->kids[1] = b->kids[0];
3720: goto L619; /* cmp.%t %y,%x; b%f %z */
3721: }
3722: if (
3723: b->count == 1
3724: ) {
3725: if (--b->count > 0) {
3726: if (c=b->kids[0]) ++c->count;
3727: if (c=b->kids[3]) ++c->count;
3728: }
3729: a->syms[1] = b->syms[0];
3730: a->kids[4] = b->kids[3];
3731: a->x.ints[1] = b->x.ints[0];
3732: a->kids[1] = b->kids[0];
3733: goto L619; /* cmp.%t %y,%x; b%f %z */
3734: }
3735: /* $a%n */
3736: /* &_%c */
3737: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
3738: if (--b->count > 0) {
3739: if (c=b->kids[0]) ++c->count;
3740: if (c=b->kids[3]) ++c->count;
3741: }
3742: a->syms[1] = b->syms[0];
3743: a->kids[4] = b->kids[3];
3744: a->x.ints[1] = b->x.ints[0];
3745: a->kids[1] = b->kids[0];
3746: goto L619; /* cmp.%t %y,%x; b%f %z */
3747: }
3748: }
3749: }
3750: break;
3751: case 3: /* $d%n */
3752: switch (a->x.ints[1]) {
3753: case 1: /* $a%n */
3754: case 3: /* $d%n */
3755: b = a->kids[1];
3756: if (
3757: b->op == 622 /* mov.%t %y,%z */
3758: && a->x.ints[4] == b->x.ints[4]
3759: ) {
3760: /* $d%n */
3761: /* &%c */
3762: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
3763: if (--b->count > 0) {
3764: if (c=b->kids[0]) ++c->count;
3765: if (c=b->kids[3]) ++c->count;
3766: }
3767: a->syms[1] = b->syms[0];
3768: a->kids[4] = b->kids[3];
3769: a->x.ints[1] = b->x.ints[0];
3770: a->kids[1] = b->kids[0];
3771: goto L619; /* cmp.%t %y,%x; b%f %z */
3772: }
3773: if (
3774: b->count == 1
3775: ) {
3776: if (--b->count > 0) {
3777: if (c=b->kids[0]) ++c->count;
3778: if (c=b->kids[3]) ++c->count;
3779: }
3780: a->syms[1] = b->syms[0];
3781: a->kids[4] = b->kids[3];
3782: a->x.ints[1] = b->x.ints[0];
3783: a->kids[1] = b->kids[0];
3784: goto L619; /* cmp.%t %y,%x; b%f %z */
3785: }
3786: /* $a%n */
3787: /* &_%c */
3788: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
3789: if (--b->count > 0) {
3790: if (c=b->kids[0]) ++c->count;
3791: if (c=b->kids[3]) ++c->count;
3792: }
3793: a->syms[1] = b->syms[0];
3794: a->kids[4] = b->kids[3];
3795: a->x.ints[1] = b->x.ints[0];
3796: a->kids[1] = b->kids[0];
3797: goto L619; /* cmp.%t %y,%x; b%f %z */
3798: }
3799: }
3800: break;
3801: case 15: /* &%c */
3802: b = a->kids[0];
3803: if (
3804: b->op == 622 /* mov.%t %y,%z */
3805: ) {
3806: /* $a%n */
3807: /* $a%c */
3808: /* $d%n */
3809: /* $d%c */
3810: /* _%c */
3811: /* _%c($a%n) */
3812: /* %c($a%n) */
3813: /* %c($sp) */
3814: /* %c($a6) */
3815: /* ($a%n) */
3816: if ("\0\1\1\1\1\1\1\0\0\1\1\1\1\0\0\0\0\0\0\0"[b->x.ints[0]]) {
3817: if (
3818: a->x.ints[4] == b->x.ints[4]
3819: && b->x.ints[0] == 3 /* $d%n */
3820: ) {
3821: if (--b->count > 0) {
3822: if (c=b->kids[0]) ++c->count;
3823: if (c=b->kids[3]) ++c->count;
3824: }
3825: a->syms[0] = b->syms[0];
3826: a->kids[3] = b->kids[3];
3827: a->x.ints[0] = b->x.ints[0];
3828: a->kids[0] = b->kids[0];
3829: goto L619; /* cmp.%t %y,%x; b%f %z */
3830: }
3831: }
3832: }
3833: break;
3834: }
3835: b = a->kids[0];
3836: if (
3837: a->x.ints[1] == 15 /* &%c */
3838: && b->op == 622 /* mov.%t %y,%z */
3839: ) {
3840: /* $a%n */
3841: /* $a%c */
3842: /* $d%n */
3843: /* $d%c */
3844: /* _%c */
3845: /* _%c($a%n) */
3846: /* %c($a%n) */
3847: /* %c($sp) */
3848: /* %c($a6) */
3849: /* ($a%n) */
3850: if ("\0\1\1\1\1\1\1\0\0\1\1\1\1\0\0\0\0\0\0\0"[b->x.ints[0]]) {
3851: if (
3852: a->x.ints[4] == b->x.ints[4]
3853: && b->count == 1
3854: ) {
3855: if (--b->count > 0) {
3856: if (c=b->kids[0]) ++c->count;
3857: if (c=b->kids[3]) ++c->count;
3858: }
3859: a->syms[0] = b->syms[0];
3860: a->kids[3] = b->kids[3];
3861: a->x.ints[0] = b->x.ints[0];
3862: a->kids[0] = b->kids[0];
3863: goto L619; /* cmp.%t %y,%x; b%f %z */
3864: }
3865: }
3866: }
3867: break;
3868: case 4: /* $d%c */
3869: /* $a%n */
3870: /* $d%n */
3871: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"[a->x.ints[1]]) {
3872: b = a->kids[1];
3873: if (
3874: b->op == 622 /* mov.%t %y,%z */
3875: && a->x.ints[4] == b->x.ints[4]
3876: ) {
3877: /* $d%n */
3878: /* &%c */
3879: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
3880: if (--b->count > 0) {
3881: if (c=b->kids[0]) ++c->count;
3882: if (c=b->kids[3]) ++c->count;
3883: }
3884: a->syms[1] = b->syms[0];
3885: a->kids[4] = b->kids[3];
3886: a->x.ints[1] = b->x.ints[0];
3887: a->kids[1] = b->kids[0];
3888: goto L619; /* cmp.%t %y,%x; b%f %z */
3889: }
3890: if (
3891: b->count == 1
3892: ) {
3893: if (--b->count > 0) {
3894: if (c=b->kids[0]) ++c->count;
3895: if (c=b->kids[3]) ++c->count;
3896: }
3897: a->syms[1] = b->syms[0];
3898: a->kids[4] = b->kids[3];
3899: a->x.ints[1] = b->x.ints[0];
3900: a->kids[1] = b->kids[0];
3901: goto L619; /* cmp.%t %y,%x; b%f %z */
3902: }
3903: /* $a%n */
3904: /* $d%n */
3905: /* &%c */
3906: /* &_%c */
3907: if ("\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\1\0\0"[b->x.ints[0]]) {
3908: if (--b->count > 0) {
3909: if (c=b->kids[0]) ++c->count;
3910: if (c=b->kids[3]) ++c->count;
3911: }
3912: a->syms[1] = b->syms[0];
3913: a->kids[4] = b->kids[3];
3914: a->x.ints[1] = b->x.ints[0];
3915: a->kids[1] = b->kids[0];
3916: goto L619; /* cmp.%t %y,%x; b%f %z */
3917: }
3918: if (
3919: b->count == 1
3920: ) {
3921: if (--b->count > 0) {
3922: if (c=b->kids[0]) ++c->count;
3923: if (c=b->kids[3]) ++c->count;
3924: }
3925: a->syms[1] = b->syms[0];
3926: a->kids[4] = b->kids[3];
3927: a->x.ints[1] = b->x.ints[0];
3928: a->kids[1] = b->kids[0];
3929: goto L619; /* cmp.%t %y,%x; b%f %z */
3930: }
3931: /* $a%n */
3932: /* &_%c */
3933: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
3934: if (--b->count > 0) {
3935: if (c=b->kids[0]) ++c->count;
3936: if (c=b->kids[3]) ++c->count;
3937: }
3938: a->syms[1] = b->syms[0];
3939: a->kids[4] = b->kids[3];
3940: a->x.ints[1] = b->x.ints[0];
3941: a->kids[1] = b->kids[0];
3942: goto L619; /* cmp.%t %y,%x; b%f %z */
3943: }
3944: }
3945: }
3946: break;
3947: }
3948: if (
3949: a->x.ints[4] == 3 /* l */
3950: && a->x.ints[0] == 3 /* $d%n */
3951: ) {
3952: switch (a->x.ints[1]) {
3953: case 3: /* $d%n */
3954: b = a->kids[0];
3955: switch (b->op) {
3956: case 617: /* %f.%t %z */
3957: b = a->kids[1];
3958: if (
3959: a->kids[0]->x.ints[3] == 11 /* ext */
3960: && a->kids[0]->x.ints[4] == 3 /* l */
3961: && b->op == 617 /* %f.%t %z */
3962: && b->x.ints[3] == 11 /* ext */
3963: && b->x.ints[4] == 3 /* l */
3964: ) {
3965: if (--a->kids[0]->count > 0) {
3966: if (c=a->kids[0]->kids[0]) ++c->count;
3967: if (c=a->kids[0]->kids[3]) ++c->count;
3968: }
3969: if (--b->count > 0) {
3970: if (c=b->kids[0]) ++c->count;
3971: if (c=b->kids[3]) ++c->count;
3972: }
3973: a->syms[0] = a->kids[0]->syms[0];
3974: a->kids[3] = a->kids[0]->kids[3];
3975: a->x.ints[0] = a->kids[0]->x.ints[0];
3976: a->kids[0] = a->kids[0]->kids[0];
3977: a->syms[1] = b->syms[0];
3978: a->kids[4] = b->kids[3];
3979: a->x.ints[1] = b->x.ints[0];
3980: a->kids[1] = b->kids[0];
3981: a->x.ints[4] = 2; /* w */
3982: goto L619; /* cmp.%t %y,%x; b%f %z */
3983: }
3984: break;
3985: case 627: /* ext.w %z; ext.l %z */
3986: b = a->kids[1];
3987: if (
3988: b->op == 627 /* ext.w %z; ext.l %z */
3989: ) {
3990: if (--a->kids[0]->count > 0) {
3991: if (c=a->kids[0]->kids[0]) ++c->count;
3992: if (c=a->kids[0]->kids[3]) ++c->count;
3993: }
3994: if (--b->count > 0) {
3995: if (c=b->kids[0]) ++c->count;
3996: if (c=b->kids[3]) ++c->count;
3997: }
3998: a->syms[0] = a->kids[0]->syms[0];
3999: a->kids[3] = a->kids[0]->kids[3];
4000: a->x.ints[0] = a->kids[0]->x.ints[0];
4001: a->kids[0] = a->kids[0]->kids[0];
4002: a->syms[1] = b->syms[0];
4003: a->kids[4] = b->kids[3];
4004: a->x.ints[1] = b->x.ints[0];
4005: a->kids[1] = b->kids[0];
4006: a->x.ints[4] = 1; /* b */
4007: goto L619; /* cmp.%t %y,%x; b%f %z */
4008: }
4009: break;
4010: }
4011: break;
4012: case 15: /* &%c */
4013: /* eq */
4014: /* ge */
4015: /* gt */
4016: /* le */
4017: /* lt */
4018: /* ne */
4019: if ("\0\0\0\0\0\0\0\0\0\0\1\0\1\1\0\1\0\0\0\1\0\0\1\0\0\0\0"[a->x.ints[3]]) {
4020: b = a->kids[0];
4021: switch (b->op) {
4022: case 617: /* %f.%t %z */
4023: if (
4024: b->x.ints[3] == 11 /* ext */
4025: && b->x.ints[4] == 3 /* l */
4026: && b->count == 1
4027: ) {
4028: if (--b->count > 0) {
4029: if (c=b->kids[0]) ++c->count;
4030: if (c=b->kids[3]) ++c->count;
4031: }
4032: a->syms[0] = b->syms[0];
4033: a->kids[3] = b->kids[3];
4034: a->x.ints[0] = b->x.ints[0];
4035: a->kids[0] = b->kids[0];
4036: a->x.ints[4] = 2; /* w */
4037: goto L619; /* cmp.%t %y,%x; b%f %z */
4038: }
4039: break;
4040: case 627: /* ext.w %z; ext.l %z */
4041: if (
4042: b->count == 1
4043: ) {
4044: if (--b->count > 0) {
4045: if (c=b->kids[0]) ++c->count;
4046: if (c=b->kids[3]) ++c->count;
4047: }
4048: a->syms[0] = b->syms[0];
4049: a->kids[3] = b->kids[3];
4050: a->x.ints[0] = b->x.ints[0];
4051: a->kids[0] = b->kids[0];
4052: a->x.ints[4] = 1; /* b */
4053: goto L619; /* cmp.%t %y,%x; b%f %z */
4054: }
4055: break;
4056: }
4057: }
4058: break;
4059: }
4060: }
4061: a->op = 619;
4062: break;
4063: case 620: L620: /* bra %z */
4064: dumptree(a, 620);
4065: b = a->kids[2];
4066: if (
4067: a->x.ints[2] == 12 /* ($a%n) */
4068: && b->count == 1
4069: && b->op == 621 /* lea %y,%z */
4070: && b->x.ints[0] == 5 /* _%c */
4071: ) {
4072: --b->count;
4073: a->x.ints[2] = 18; /* L%c */
4074: a->syms[2] = b->syms[0];
4075: a->kids[2] = 0;
4076: goto L620; /* bra %z */
4077: }
4078: a->op = 620;
4079: break;
4080: case 621: L621: /* lea %y,%z */
4081: dumptree(a, 621);
4082: b = a->kids[0];
4083: if (
4084: a->x.ints[0] == 9 /* %c($a%n) */
4085: && a->x.ints[2] == 2 /* $a%c */
4086: && b->op == 622 /* mov.%t %y,%z */
4087: && b->x.ints[0] == 2 /* $a%c */
4088: && b->count == 1
4089: && a->syms[2] == b->syms[0]
4090: ) {
4091: --b->count;
4092: a->x.ints[1] = 15; /* &%c */
4093: a->x.ints[4] = 3; /* l */
4094: a->x.ints[3] = 1; /* add */
4095: a->syms[1] = a->syms[0];
4096: a->kids[0] = 0;
4097: goto L615; /* %f.%t %x,%z */
4098: }
4099: a->op = 621;
4100: break;
4101: case 622: L622: /* mov.%t %y,%z */
4102: dumptree(a, 622);
4103: if (
4104: a->x.ints[2] == 11 /* %c($a6) */
4105: ) {
4106: if (
4107: getregset(a->syms[2])==DREG
4108: ) {
4109: a->x.ints[2] = 4; /* $d%c */
4110: goto L622; /* mov.%t %y,%z */
4111: }
4112: if (
4113: getregset(a->syms[2])==AREG
4114: ) {
4115: a->x.ints[2] = 2; /* $a%c */
4116: goto L622; /* mov.%t %y,%z */
4117: }
4118: }
4119: switch (a->x.ints[0]) {
4120: case 1: /* $a%n */
4121: b = a->kids[0];
4122: if (
4123: a->x.ints[2] == 2 /* $a%c */
4124: && b->op == 621 /* lea %y,%z */
4125: && b->count == 1
4126: ) {
4127: if (--b->count > 0) {
4128: if (c=b->kids[0]) ++c->count;
4129: if (c=b->kids[3]) ++c->count;
4130: }
4131: a->syms[0] = b->syms[0];
4132: a->kids[3] = b->kids[3];
4133: a->x.ints[0] = b->x.ints[0];
4134: a->kids[0] = b->kids[0];
4135: goto L621; /* lea %y,%z */
4136: }
4137: break;
4138: case 2: /* $a%c */
4139: if (
4140: a->x.ints[2] == 2 /* $a%c */
4141: && a->syms[RX] == rmap[P] && rmcopy(a)
4142: ) {
4143: a->syms[2] = a->syms[0];
4144: goto L622; /* mov.%t %y,%z */
4145: }
4146: break;
4147: case 4: /* $d%c */
4148: if (
4149: a->x.ints[2] == 4 /* $d%c */
4150: && a->syms[RX] == rmap[I] && rmcopy(a)
4151: ) {
4152: a->syms[2] = a->syms[0];
4153: goto L622; /* mov.%t %y,%z */
4154: }
4155: break;
4156: case 11: /* %c($a6) */
4157: if (
4158: getregset(a->syms[0])==DREG
4159: ) {
4160: a->x.ints[0] = 4; /* $d%c */
4161: goto L622; /* mov.%t %y,%z */
4162: }
4163: if (
4164: getregset(a->syms[0])==AREG
4165: ) {
4166: a->x.ints[0] = 2; /* $a%c */
4167: goto L622; /* mov.%t %y,%z */
4168: }
4169: break;
4170: }
4171: if (
4172: a->x.ints[2] == 10 /* %c($sp) */
4173: && a->syms[2]->x.name == sym[3].x.name /* 0 */
4174: ) {
4175: a->x.ints[2] = 13; /* ($sp) */
4176: goto L622; /* mov.%t %y,%z */
4177: }
4178: b = a->kids[0];
4179: if (
4180: a->x.ints[0] == 12 /* ($a%n) */
4181: && b->op == 621 /* lea %y,%z */
4182: ) {
4183: if (
4184: b->x.ints[0] == 5 /* _%c */
4185: ) {
4186: if (--b->count > 0) {
4187: if (c=b->kids[0]) ++c->count;
4188: if (c=b->kids[3]) ++c->count;
4189: }
4190: a->syms[0] = b->syms[0];
4191: a->kids[3] = b->kids[3];
4192: a->x.ints[0] = b->x.ints[0];
4193: a->kids[0] = b->kids[0];
4194: goto L622; /* mov.%t %y,%z */
4195: }
4196: if (
4197: b->count == 1
4198: ) {
4199: if (--b->count > 0) {
4200: if (c=b->kids[0]) ++c->count;
4201: if (c=b->kids[3]) ++c->count;
4202: }
4203: a->syms[0] = b->syms[0];
4204: a->kids[3] = b->kids[3];
4205: a->x.ints[0] = b->x.ints[0];
4206: a->kids[0] = b->kids[0];
4207: goto L622; /* mov.%t %y,%z */
4208: }
4209: if (
4210: b->x.ints[0] == 11 /* %c($a6) */
4211: ) {
4212: if (--b->count > 0) {
4213: if (c=b->kids[0]) ++c->count;
4214: if (c=b->kids[3]) ++c->count;
4215: }
4216: a->syms[0] = b->syms[0];
4217: a->kids[3] = b->kids[3];
4218: a->x.ints[0] = b->x.ints[0];
4219: a->kids[0] = b->kids[0];
4220: goto L622; /* mov.%t %y,%z */
4221: }
4222: }
4223: b = a->kids[2];
4224: if (
4225: a->x.ints[2] == 12 /* ($a%n) */
4226: && b->op == 621 /* lea %y,%z */
4227: ) {
4228: if (
4229: b->x.ints[0] == 5 /* _%c */
4230: ) {
4231: if (--b->count > 0) {
4232: if (c=b->kids[0]) ++c->count;
4233: if (c=b->kids[3]) ++c->count;
4234: }
4235: a->syms[2] = b->syms[0];
4236: a->kids[5] = b->kids[3];
4237: a->x.ints[2] = b->x.ints[0];
4238: a->kids[2] = b->kids[0];
4239: goto L622; /* mov.%t %y,%z */
4240: }
4241: if (
4242: b->count == 1
4243: ) {
4244: if (--b->count > 0) {
4245: if (c=b->kids[0]) ++c->count;
4246: if (c=b->kids[3]) ++c->count;
4247: }
4248: a->syms[2] = b->syms[0];
4249: a->kids[5] = b->kids[3];
4250: a->x.ints[2] = b->x.ints[0];
4251: a->kids[2] = b->kids[0];
4252: goto L622; /* mov.%t %y,%z */
4253: }
4254: if (
4255: b->x.ints[0] == 11 /* %c($a6) */
4256: ) {
4257: if (--b->count > 0) {
4258: if (c=b->kids[0]) ++c->count;
4259: if (c=b->kids[3]) ++c->count;
4260: }
4261: a->syms[2] = b->syms[0];
4262: a->kids[5] = b->kids[3];
4263: a->x.ints[2] = b->x.ints[0];
4264: a->kids[2] = b->kids[0];
4265: goto L622; /* mov.%t %y,%z */
4266: }
4267: }
4268: b = a->kids[0];
4269: if (
4270: a->x.ints[4] == 3 /* l */
4271: && a->x.ints[0] == 1 /* $a%n */
4272: && b->op == 621 /* lea %y,%z */
4273: && b->x.ints[0] == 5 /* _%c */
4274: ) {
4275: --b->count;
4276: a->x.ints[0] = 17; /* &_%c */
4277: a->syms[0] = b->syms[0];
4278: a->kids[0] = 0;
4279: goto L622; /* mov.%t %y,%z */
4280: }
4281: switch (a->x.ints[0]) {
4282: case 1: /* $a%n */
4283: if (
4284: b->op == 622 /* mov.%t %y,%z */
4285: && b->x.ints[4] == 3 /* l */
4286: && b->x.ints[0] == 1 /* $a%n */
4287: ) {
4288: if (--b->count > 0)
4289: if (c=b->kids[0]) ++c->count;
4290: a->kids[0] = b->kids[0];
4291: goto L622; /* mov.%t %y,%z */
4292: }
4293: if (
4294: b->op == 622 /* mov.%t %y,%z */
4295: && a->x.ints[4] == b->x.ints[4]
4296: ) {
4297: /* $d%n */
4298: /* &%c */
4299: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
4300: if (--b->count > 0) {
4301: if (c=b->kids[0]) ++c->count;
4302: if (c=b->kids[3]) ++c->count;
4303: }
4304: a->syms[0] = b->syms[0];
4305: a->kids[3] = b->kids[3];
4306: a->x.ints[0] = b->x.ints[0];
4307: a->kids[0] = b->kids[0];
4308: goto L622; /* mov.%t %y,%z */
4309: }
4310: if (
4311: b->count == 1
4312: ) {
4313: if (--b->count > 0) {
4314: if (c=b->kids[0]) ++c->count;
4315: if (c=b->kids[3]) ++c->count;
4316: }
4317: a->syms[0] = b->syms[0];
4318: a->kids[3] = b->kids[3];
4319: a->x.ints[0] = b->x.ints[0];
4320: a->kids[0] = b->kids[0];
4321: goto L622; /* mov.%t %y,%z */
4322: }
4323: /* $a%n */
4324: /* &_%c */
4325: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
4326: if (--b->count > 0) {
4327: if (c=b->kids[0]) ++c->count;
4328: if (c=b->kids[3]) ++c->count;
4329: }
4330: a->syms[0] = b->syms[0];
4331: a->kids[3] = b->kids[3];
4332: a->x.ints[0] = b->x.ints[0];
4333: a->kids[0] = b->kids[0];
4334: goto L622; /* mov.%t %y,%z */
4335: }
4336: }
4337: if (
4338: b->op == 615 /* %f.%t %x,%z */
4339: && b->x.ints[3] == 1 /* add */
4340: && b->x.ints[1] == 1 /* $a%n */
4341: && a->x.ints[4] == b->x.ints[4]
4342: && b->count == 1
4343: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4344: && a->x.ints[4] == b->kids[0]->x.ints[4]
4345: && b->kids[0]->count == 1
4346: && b->kids[0]->x.ints[0] == a->x.ints[2]
4347: && b->kids[0]->kids[0] == a->kids[2]
4348: && b->kids[0]->kids[3] == a->kids[5]
4349: && b->kids[0]->syms[0] == a->syms[2]
4350: ) {
4351: if (--b->count > 0) {
4352: if (c=b->kids[1]) ++c->count;
4353: if (c=b->kids[4]) ++c->count;
4354: }
4355: --b->kids[0]->count;
4356: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4357: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4358: a->x.ints[3] = 1; /* add */
4359: a->syms[1] = b->syms[1];
4360: a->kids[4] = b->kids[4];
4361: a->kids[1] = b->kids[1];
4362: a->x.ints[1] = b->x.ints[1];
4363: b->kids[0]->kids[3] = 0;
4364: b->kids[0]->kids[0] = 0;
4365: b->kids[0] = 0;
4366: a->kids[0] = 0;
4367: goto L615; /* %f.%t %x,%z */
4368: }
4369: if (
4370: b->op == 615 /* %f.%t %x,%z */
4371: && b->x.ints[3] == 26 /* sub */
4372: && b->x.ints[1] == 1 /* $a%n */
4373: && a->x.ints[4] == b->x.ints[4]
4374: && b->count == 1
4375: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4376: && a->x.ints[4] == b->kids[0]->x.ints[4]
4377: && b->kids[0]->count == 1
4378: && b->kids[0]->x.ints[0] == a->x.ints[2]
4379: && b->kids[0]->kids[0] == a->kids[2]
4380: && b->kids[0]->kids[3] == a->kids[5]
4381: && b->kids[0]->syms[0] == a->syms[2]
4382: ) {
4383: if (--b->count > 0) {
4384: if (c=b->kids[1]) ++c->count;
4385: if (c=b->kids[4]) ++c->count;
4386: }
4387: --b->kids[0]->count;
4388: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4389: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4390: a->x.ints[3] = 26; /* sub */
4391: a->syms[1] = b->syms[1];
4392: a->kids[4] = b->kids[4];
4393: a->kids[1] = b->kids[1];
4394: a->x.ints[1] = b->x.ints[1];
4395: b->kids[0]->kids[3] = 0;
4396: b->kids[0]->kids[0] = 0;
4397: b->kids[0] = 0;
4398: a->kids[0] = 0;
4399: goto L615; /* %f.%t %x,%z */
4400: }
4401: if (
4402: b->op == 615 /* %f.%t %x,%z */
4403: && b->x.ints[3] == 1 /* add */
4404: && b->x.ints[1] == 15 /* &%c */
4405: && a->x.ints[4] == b->x.ints[4]
4406: && b->count == 1
4407: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4408: && a->x.ints[4] == b->kids[0]->x.ints[4]
4409: && b->kids[0]->count == 1
4410: && b->kids[0]->x.ints[0] == a->x.ints[2]
4411: && b->kids[0]->kids[0] == a->kids[2]
4412: && b->kids[0]->kids[3] == a->kids[5]
4413: && b->kids[0]->syms[0] == a->syms[2]
4414: ) {
4415: if (--b->count > 0) {
4416: if (c=b->kids[1]) ++c->count;
4417: if (c=b->kids[4]) ++c->count;
4418: }
4419: --b->kids[0]->count;
4420: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4421: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4422: a->x.ints[3] = 1; /* add */
4423: a->syms[1] = b->syms[1];
4424: a->kids[4] = b->kids[4];
4425: a->kids[1] = b->kids[1];
4426: a->x.ints[1] = b->x.ints[1];
4427: b->kids[0]->kids[3] = 0;
4428: b->kids[0]->kids[0] = 0;
4429: b->kids[0] = 0;
4430: a->kids[0] = 0;
4431: goto L615; /* %f.%t %x,%z */
4432: }
4433: if (
4434: b->op == 615 /* %f.%t %x,%z */
4435: && b->x.ints[3] == 26 /* sub */
4436: && b->x.ints[1] == 15 /* &%c */
4437: && a->x.ints[4] == b->x.ints[4]
4438: && b->count == 1
4439: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4440: && a->x.ints[4] == b->kids[0]->x.ints[4]
4441: && b->kids[0]->count == 1
4442: && b->kids[0]->x.ints[0] == a->x.ints[2]
4443: && b->kids[0]->kids[0] == a->kids[2]
4444: && b->kids[0]->kids[3] == a->kids[5]
4445: && b->kids[0]->syms[0] == a->syms[2]
4446: ) {
4447: if (--b->count > 0) {
4448: if (c=b->kids[1]) ++c->count;
4449: if (c=b->kids[4]) ++c->count;
4450: }
4451: --b->kids[0]->count;
4452: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4453: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4454: a->x.ints[3] = 26; /* sub */
4455: a->syms[1] = b->syms[1];
4456: a->kids[4] = b->kids[4];
4457: a->kids[1] = b->kids[1];
4458: a->x.ints[1] = b->x.ints[1];
4459: b->kids[0]->kids[3] = 0;
4460: b->kids[0]->kids[0] = 0;
4461: b->kids[0] = 0;
4462: a->kids[0] = 0;
4463: goto L615; /* %f.%t %x,%z */
4464: }
4465: if (
4466: b->op == 615 /* %f.%t %x,%z */
4467: && b->x.ints[3] == 1 /* add */
4468: && b->x.ints[1] == 3 /* $d%n */
4469: && a->x.ints[4] == b->x.ints[4]
4470: && b->count == 1
4471: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4472: && a->x.ints[4] == b->kids[0]->x.ints[4]
4473: && b->kids[0]->count == 1
4474: && b->kids[0]->x.ints[0] == a->x.ints[2]
4475: && b->kids[0]->kids[0] == a->kids[2]
4476: && b->kids[0]->kids[3] == a->kids[5]
4477: && b->kids[0]->syms[0] == a->syms[2]
4478: ) {
4479: if (--b->count > 0) {
4480: if (c=b->kids[1]) ++c->count;
4481: if (c=b->kids[4]) ++c->count;
4482: }
4483: --b->kids[0]->count;
4484: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4485: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4486: a->x.ints[3] = 1; /* add */
4487: a->syms[1] = b->syms[1];
4488: a->kids[4] = b->kids[4];
4489: a->kids[1] = b->kids[1];
4490: a->x.ints[1] = b->x.ints[1];
4491: b->kids[0]->kids[3] = 0;
4492: b->kids[0]->kids[0] = 0;
4493: b->kids[0] = 0;
4494: a->kids[0] = 0;
4495: goto L615; /* %f.%t %x,%z */
4496: }
4497: if (
4498: b->op == 615 /* %f.%t %x,%z */
4499: && b->x.ints[3] == 26 /* sub */
4500: && b->x.ints[1] == 3 /* $d%n */
4501: && a->x.ints[4] == b->x.ints[4]
4502: && b->count == 1
4503: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4504: && a->x.ints[4] == b->kids[0]->x.ints[4]
4505: && b->kids[0]->count == 1
4506: && b->kids[0]->x.ints[0] == a->x.ints[2]
4507: && b->kids[0]->kids[0] == a->kids[2]
4508: && b->kids[0]->kids[3] == a->kids[5]
4509: && b->kids[0]->syms[0] == a->syms[2]
4510: ) {
4511: if (--b->count > 0) {
4512: if (c=b->kids[1]) ++c->count;
4513: if (c=b->kids[4]) ++c->count;
4514: }
4515: --b->kids[0]->count;
4516: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4517: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4518: a->x.ints[3] = 26; /* sub */
4519: a->syms[1] = b->syms[1];
4520: a->kids[4] = b->kids[4];
4521: a->kids[1] = b->kids[1];
4522: a->x.ints[1] = b->x.ints[1];
4523: b->kids[0]->kids[3] = 0;
4524: b->kids[0]->kids[0] = 0;
4525: b->kids[0] = 0;
4526: a->kids[0] = 0;
4527: goto L615; /* %f.%t %x,%z */
4528: }
4529: break;
4530: case 3: /* $d%n */
4531: if (
4532: b->op == 622 /* mov.%t %y,%z */
4533: && b->x.ints[4] == 3 /* l */
4534: && b->x.ints[0] == 3 /* $d%n */
4535: ) {
4536: if (--b->count > 0)
4537: if (c=b->kids[0]) ++c->count;
4538: a->kids[0] = b->kids[0];
4539: goto L622; /* mov.%t %y,%z */
4540: }
4541: if (
4542: b->op == 622 /* mov.%t %y,%z */
4543: && a->x.ints[4] == b->x.ints[4]
4544: ) {
4545: /* $d%n */
4546: /* &%c */
4547: if ("\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0"[b->x.ints[0]]) {
4548: if (--b->count > 0) {
4549: if (c=b->kids[0]) ++c->count;
4550: if (c=b->kids[3]) ++c->count;
4551: }
4552: a->syms[0] = b->syms[0];
4553: a->kids[3] = b->kids[3];
4554: a->x.ints[0] = b->x.ints[0];
4555: a->kids[0] = b->kids[0];
4556: goto L622; /* mov.%t %y,%z */
4557: }
4558: if (
4559: b->count == 1
4560: ) {
4561: if (--b->count > 0) {
4562: if (c=b->kids[0]) ++c->count;
4563: if (c=b->kids[3]) ++c->count;
4564: }
4565: a->syms[0] = b->syms[0];
4566: a->kids[3] = b->kids[3];
4567: a->x.ints[0] = b->x.ints[0];
4568: a->kids[0] = b->kids[0];
4569: goto L622; /* mov.%t %y,%z */
4570: }
4571: /* $a%n */
4572: /* &_%c */
4573: if ("\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0"[b->x.ints[0]]) {
4574: if (--b->count > 0) {
4575: if (c=b->kids[0]) ++c->count;
4576: if (c=b->kids[3]) ++c->count;
4577: }
4578: a->syms[0] = b->syms[0];
4579: a->kids[3] = b->kids[3];
4580: a->x.ints[0] = b->x.ints[0];
4581: a->kids[0] = b->kids[0];
4582: goto L622; /* mov.%t %y,%z */
4583: }
4584: }
4585: if (
4586: b->op == 615 /* %f.%t %x,%z */
4587: && b->x.ints[3] == 1 /* add */
4588: && b->x.ints[1] == 1 /* $a%n */
4589: && a->x.ints[4] == b->x.ints[4]
4590: && b->count == 1
4591: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4592: && a->x.ints[4] == b->kids[0]->x.ints[4]
4593: && b->kids[0]->count == 1
4594: && b->kids[0]->x.ints[0] == a->x.ints[2]
4595: && b->kids[0]->kids[0] == a->kids[2]
4596: && b->kids[0]->kids[3] == a->kids[5]
4597: && b->kids[0]->syms[0] == a->syms[2]
4598: ) {
4599: if (--b->count > 0) {
4600: if (c=b->kids[1]) ++c->count;
4601: if (c=b->kids[4]) ++c->count;
4602: }
4603: --b->kids[0]->count;
4604: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4605: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4606: a->x.ints[3] = 1; /* add */
4607: a->syms[1] = b->syms[1];
4608: a->kids[4] = b->kids[4];
4609: a->kids[1] = b->kids[1];
4610: a->x.ints[1] = b->x.ints[1];
4611: b->kids[0]->kids[3] = 0;
4612: b->kids[0]->kids[0] = 0;
4613: b->kids[0] = 0;
4614: a->kids[0] = 0;
4615: goto L615; /* %f.%t %x,%z */
4616: }
4617: if (
4618: b->op == 615 /* %f.%t %x,%z */
4619: && b->x.ints[3] == 26 /* sub */
4620: && b->x.ints[1] == 1 /* $a%n */
4621: && a->x.ints[4] == b->x.ints[4]
4622: && b->count == 1
4623: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4624: && a->x.ints[4] == b->kids[0]->x.ints[4]
4625: && b->kids[0]->count == 1
4626: && b->kids[0]->x.ints[0] == a->x.ints[2]
4627: && b->kids[0]->kids[0] == a->kids[2]
4628: && b->kids[0]->kids[3] == a->kids[5]
4629: && b->kids[0]->syms[0] == a->syms[2]
4630: ) {
4631: if (--b->count > 0) {
4632: if (c=b->kids[1]) ++c->count;
4633: if (c=b->kids[4]) ++c->count;
4634: }
4635: --b->kids[0]->count;
4636: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4637: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4638: a->x.ints[3] = 26; /* sub */
4639: a->syms[1] = b->syms[1];
4640: a->kids[4] = b->kids[4];
4641: a->kids[1] = b->kids[1];
4642: a->x.ints[1] = b->x.ints[1];
4643: b->kids[0]->kids[3] = 0;
4644: b->kids[0]->kids[0] = 0;
4645: b->kids[0] = 0;
4646: a->kids[0] = 0;
4647: goto L615; /* %f.%t %x,%z */
4648: }
4649: if (
4650: b->op == 615 /* %f.%t %x,%z */
4651: && b->x.ints[3] == 1 /* add */
4652: && b->x.ints[1] == 15 /* &%c */
4653: && a->x.ints[4] == b->x.ints[4]
4654: && b->count == 1
4655: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4656: && a->x.ints[4] == b->kids[0]->x.ints[4]
4657: && b->kids[0]->count == 1
4658: && b->kids[0]->x.ints[0] == a->x.ints[2]
4659: && b->kids[0]->kids[0] == a->kids[2]
4660: && b->kids[0]->kids[3] == a->kids[5]
4661: && b->kids[0]->syms[0] == a->syms[2]
4662: ) {
4663: if (--b->count > 0) {
4664: if (c=b->kids[1]) ++c->count;
4665: if (c=b->kids[4]) ++c->count;
4666: }
4667: --b->kids[0]->count;
4668: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4669: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4670: a->x.ints[3] = 1; /* add */
4671: a->syms[1] = b->syms[1];
4672: a->kids[4] = b->kids[4];
4673: a->kids[1] = b->kids[1];
4674: a->x.ints[1] = b->x.ints[1];
4675: b->kids[0]->kids[3] = 0;
4676: b->kids[0]->kids[0] = 0;
4677: b->kids[0] = 0;
4678: a->kids[0] = 0;
4679: goto L615; /* %f.%t %x,%z */
4680: }
4681: if (
4682: b->op == 615 /* %f.%t %x,%z */
4683: && b->x.ints[3] == 26 /* sub */
4684: && b->x.ints[1] == 15 /* &%c */
4685: && a->x.ints[4] == b->x.ints[4]
4686: && b->count == 1
4687: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4688: && a->x.ints[4] == b->kids[0]->x.ints[4]
4689: && b->kids[0]->count == 1
4690: && b->kids[0]->x.ints[0] == a->x.ints[2]
4691: && b->kids[0]->kids[0] == a->kids[2]
4692: && b->kids[0]->kids[3] == a->kids[5]
4693: && b->kids[0]->syms[0] == a->syms[2]
4694: ) {
4695: if (--b->count > 0) {
4696: if (c=b->kids[1]) ++c->count;
4697: if (c=b->kids[4]) ++c->count;
4698: }
4699: --b->kids[0]->count;
4700: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4701: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4702: a->x.ints[3] = 26; /* sub */
4703: a->syms[1] = b->syms[1];
4704: a->kids[4] = b->kids[4];
4705: a->kids[1] = b->kids[1];
4706: a->x.ints[1] = b->x.ints[1];
4707: b->kids[0]->kids[3] = 0;
4708: b->kids[0]->kids[0] = 0;
4709: b->kids[0] = 0;
4710: a->kids[0] = 0;
4711: goto L615; /* %f.%t %x,%z */
4712: }
4713: if (
4714: b->op == 615 /* %f.%t %x,%z */
4715: && b->x.ints[3] == 1 /* add */
4716: && b->x.ints[1] == 3 /* $d%n */
4717: && a->x.ints[4] == b->x.ints[4]
4718: && b->count == 1
4719: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4720: && a->x.ints[4] == b->kids[0]->x.ints[4]
4721: && b->kids[0]->count == 1
4722: && b->kids[0]->x.ints[0] == a->x.ints[2]
4723: && b->kids[0]->kids[0] == a->kids[2]
4724: && b->kids[0]->kids[3] == a->kids[5]
4725: && b->kids[0]->syms[0] == a->syms[2]
4726: ) {
4727: if (--b->count > 0) {
4728: if (c=b->kids[1]) ++c->count;
4729: if (c=b->kids[4]) ++c->count;
4730: }
4731: --b->kids[0]->count;
4732: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4733: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4734: a->x.ints[3] = 1; /* add */
4735: a->syms[1] = b->syms[1];
4736: a->kids[4] = b->kids[4];
4737: a->kids[1] = b->kids[1];
4738: a->x.ints[1] = b->x.ints[1];
4739: b->kids[0]->kids[3] = 0;
4740: b->kids[0]->kids[0] = 0;
4741: b->kids[0] = 0;
4742: a->kids[0] = 0;
4743: goto L615; /* %f.%t %x,%z */
4744: }
4745: if (
4746: b->op == 615 /* %f.%t %x,%z */
4747: && b->x.ints[3] == 26 /* sub */
4748: && b->x.ints[1] == 3 /* $d%n */
4749: && a->x.ints[4] == b->x.ints[4]
4750: && b->count == 1
4751: && b->kids[0]->op == 622 /* mov.%t %y,%z */
4752: && a->x.ints[4] == b->kids[0]->x.ints[4]
4753: && b->kids[0]->count == 1
4754: && b->kids[0]->x.ints[0] == a->x.ints[2]
4755: && b->kids[0]->kids[0] == a->kids[2]
4756: && b->kids[0]->kids[3] == a->kids[5]
4757: && b->kids[0]->syms[0] == a->syms[2]
4758: ) {
4759: if (--b->count > 0) {
4760: if (c=b->kids[1]) ++c->count;
4761: if (c=b->kids[4]) ++c->count;
4762: }
4763: --b->kids[0]->count;
4764: b->kids[0]->kids[0] && --b->kids[0]->kids[0]->count;
4765: b->kids[0]->kids[3] && --b->kids[0]->kids[3]->count;
4766: a->x.ints[3] = 26; /* sub */
4767: a->syms[1] = b->syms[1];
4768: a->kids[4] = b->kids[4];
4769: a->kids[1] = b->kids[1];
4770: a->x.ints[1] = b->x.ints[1];
4771: b->kids[0]->kids[3] = 0;
4772: b->kids[0]->kids[0] = 0;
4773: b->kids[0] = 0;
4774: a->kids[0] = 0;
4775: goto L615; /* %f.%t %x,%z */
4776: }
4777: break;
4778: }
4779: a->op = 622;
4780: break;
4781: case 623: L623: /* mov.%t %y,%z; %f.%t %x,%z */
4782: dumptree(a, 623);
4783: a->op = 623;
4784: break;
4785: case 624: L624: /* mov.%t %y,%z; %f.%t %z */
4786: dumptree(a, 624);
4787: a->op = 624;
4788: break;
4789: case 625: L625: /* tst.%t %y; b%f %z */
4790: dumptree(a, 625);
4791: a->op = 625;
4792: break;
4793: case 626: L626: /* %z: */
4794: dumptree(a, 626);
4795: a->op = 626;
4796: break;
4797: case 627: L627: /* ext.w %z; ext.l %z */
4798: dumptree(a, 627);
4799: a->op = 627;
4800: break;
4801: case 628: L628: /* %f.%t %x,%z; ext.w %z */
4802: dumptree(a, 628);
4803: a->op = 628;
4804: break;
4805: case 629: L629: /* %f.%t %x,%z; and &0xffff,%z */
4806: dumptree(a, 629);
4807: a->op = 629;
4808: break;
4809: case 630: L630: /* %f.%t %x,%z; swap; ext.w %z */
4810: dumptree(a, 630);
4811: a->op = 630;
4812: break;
4813: case 631: L631: /* %f.%t %x,%z; swap; and &0xffff,%z */
4814: dumptree(a, 631);
4815: a->op = 631;
4816: break;
4817: default:
4818: assert(0);
4819: }
4820: }
4821:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.