1 Fix jump table support. currently it uses 64bit absolute address.
2 gcc uses gprel32. This way I won't keep fighting Evan as he keeps
3 breaking 64bit entries in jump tables...
8 int main(int x, char** y)
47 .section .rodata.str1.1,"aMS",@progbits,1
72 ldah $29,0($27) !gpdisp!1
73 lda $29,0($29) !gpdisp!1
81 ldah $6,$L11($29) !gprelhigh
82 lda $5,$L11($6) !gprellow
102 ldah $20,$LC6($29) !gprelhigh
103 lda $4,$LC6($20) !gprellow
107 ldq $27,print($29) !literal!2
108 jsr $26,($27),print !lituse_jsr!2
109 ldah $29,0($26) !gpdisp!3
112 lda $29,0($29) !gpdisp!3
117 ldah $21,$LC7($29) !gprelhigh
118 lda $4,$LC7($21) !gprellow
121 ldah $7,$LC0($29) !gprelhigh
122 lda $4,$LC0($7) !gprellow
125 ldah $8,$LC1($29) !gprelhigh
126 lda $4,$LC1($8) !gprellow
129 ldah $16,$LC2($29) !gprelhigh
130 lda $4,$LC2($16) !gprellow
133 ldah $17,$LC3($29) !gprelhigh
134 lda $4,$LC3($17) !gprellow
137 ldah $18,$LC4($29) !gprelhigh
138 lda $4,$LC4($18) !gprellow
141 ldah $19,$LC5($29) !gprelhigh
142 lda $4,$LC5($19) !gprellow
145 .section .note.GNU-stack,"",@progbits
146 .ident "GCC: (GNU) 3.4.4 20050314 (prerelease) (Debian 3.4.3-13)"
151 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
152 Fix Ordered/Unordered FP stuff
155 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156 improve bytezap opertunities
157 ulong %foo(ulong %y) {
159 %tmp = and ulong %y, 65535
160 %tmp2 = shr ulong %tmp, ubyte 3
165 compiles to a 3 instruction sequence without instcombine
170 After instcombine you get
171 ulong %foo(ulong %y) {
173 %tmp = shr ulong %y, ubyte 3 ; <ulong> [#uses=1]
174 %tmp2 = and ulong %tmp, 8191 ; <ulong> [#uses=1]