H A D | x86unix.pl | 9 $align=($main'aout)?"4":"16"; 10 $under=($main'aout or $main'coff)?"_":""; 11 $dot=($main'aout)?"":"."; 12 $com_start="#" if ($main'aout or $main'coff); 14 sub main'asm_init_output { @out=(); } subroutine 15 sub main'asm_get_output { return(@out); } subroutine 16 sub main'get_labels { return(@labels); } subroutine 17 sub main'external_labe subroutine 86 sub main'LB subroutine 92 sub main'HB subroutine 98 sub main'DWP subroutine 119 sub main'QWP subroutine 124 sub main'BP subroutine 129 sub main'BC subroutine 134 sub main'DWC subroutine 156 sub main'mov { &out2("movl",@_); } subroutine 157 sub main'movb { &out2("movb",@_); } subroutine 158 sub main'and { &out2("andl",@_); } subroutine 159 sub main'or { &out2("orl",@_); } subroutine 160 sub main'shl { &out2("sall",@_); } subroutine 161 sub main'shr { &out2("shrl",@_); } subroutine 162 sub main'xor { &out2("xorl",@_); } subroutine 163 sub main'xorb { &out2("xorb",@_); } subroutine 164 sub main'add { &out2($_[0]=~/%[a-d][lh]/?"addb":"addl",@_); } subroutine 165 sub main'adc { &out2("adcl",@_); } subroutine 166 sub main'sub { &out2("subl",@_); } subroutine 167 sub main'sbb { &out2("sbbl",@_); } subroutine 168 sub main'rotl { &out2("roll",@_); } subroutine 169 sub main'rotr { &out2("rorl",@_); } subroutine 170 sub main'exch { &out2($_[0]=~/%[a-d][lh]/?"xchgb":"xchgl",@_); } subroutine 171 sub main'cmp { &out2("cmpl",@_); } subroutine 172 sub main'lea { &out2("leal",@_); } subroutine 173 sub main'mul { &out1("mull",@_); } subroutine 174 sub main'imul { &out2("imull",@_); } subroutine 175 sub main'div { &out1("divl",@_); } subroutine 176 sub main'jmp { &out1("jmp",@_); } subroutine 177 sub main'jmp_ptr { &out1p("jmp",@_); } subroutine 178 sub main'je { &out1("je",@_); } subroutine 179 sub main'jle { &out1("jle",@_); } subroutine 180 sub main'jne { &out1("jne",@_); } subroutine 181 sub main'jnz { &out1("jnz",@_); } subroutine 182 sub main'jz { &out1("jz",@_); } subroutine 183 sub main'jge { &out1("jge",@_); } subroutine 184 sub main'jl { &out1("jl",@_); } subroutine 185 sub main'ja { &out1("ja",@_); } subroutine 186 sub main'jae { &out1("jae",@_); } subroutine 187 sub main'jb { &out1("jb",@_); } subroutine 188 sub main'jbe { &out1("jbe",@_); } subroutine 189 sub main'jc { &out1("jc",@_); } subroutine 190 sub main'jnc { &out1("jnc",@_); } subroutine 191 sub main'jno { &out1("jno",@_); } subroutine 192 sub main'dec { &out1("decl",@_); } subroutine 193 sub main'inc { &out1($_[0]=~/%[a-d][hl]/?"incb":"incl",@_); } subroutine 194 sub main'push { &out1("pushl",@_); $stack+=4; } subroutine 195 sub main'pop { &out1("popl",@_); $stack-=4; } subroutine 196 sub main'pushf { &out0("pushfl"); $stack+=4; } subroutine 197 sub main'popf { &out0("popfl"); $stack-=4; } subroutine 198 sub main'not { &out1("notl",@_); } subroutine 199 sub main'call { my $pre=$under; subroutine 204 sub main'call_ptr { &out1p("call",@_); } subroutine 205 sub main'ret { &out0("ret"); } subroutine 206 sub main'nop { &out0("nop"); } subroutine 207 sub main'test { &out2("testl",@_); } subroutine 208 sub main'bt { &out2("btl",@_); } subroutine 209 sub main'leave { &out0("leave"); } subroutine 210 sub main'cpuid { &out0(".byte\\t0x0f,0xa2"); } subroutine 211 sub main'rdtsc { &out0(".byte\\t0x0f,0x31"); } subroutine 212 sub main'halt { &out0("hlt"); } subroutine 213 sub main'movz { &out2("movzbl",@_); } subroutine 214 sub main'neg { &out1("negl",@_); } subroutine 215 sub main'cld { &out0("cld"); } subroutine 218 sub main'emms { &out0("emms"); } subroutine 219 sub main'movd { &out2("movd",@_); } subroutine 220 sub main'movdqu { &out2("movdqu",@_); } subroutine 221 sub main'movdqa { &out2("movdqa",@_); } subroutine 222 sub main'movdq2q{ &out2("movdq2q",@_); } subroutine 223 sub main'movq2dq{ &out2("movq2dq",@_); } subroutine 224 sub main'paddq { &out2("paddq",@_); } subroutine 225 sub main'pmuludq{ &out2("pmuludq",@_); } subroutine 226 sub main'psrlq { &out2("psrlq",@_); } subroutine 227 sub main'psllq { &out2("psllq",@_); } subroutine 228 sub main'pxor { &out2("pxor",@_); } subroutine 229 sub main'por { &out2("por",@_); } subroutine 230 sub main'pand { &out2("pand",@_); } subroutine 231 sub main'movq { subroutine 240 sub main'bswap subroutine 337 sub main'file subroutine 347 sub main'function_begin subroutine 379 sub main'function_begin_B subroutine 403 sub main'function_end subroutine 429 sub main'function_end_A subroutine 443 sub main'function_end_B subroutine 460 sub main'wparam subroutine 467 sub main'stack_push subroutine 474 sub main'stack_pop subroutine 481 sub main'swtmp subroutine 494 sub main'comment subroutine 511 sub main'public_label subroutine 517 sub main'label subroutine 527 sub main'set_label subroutine 542 sub main'file_end subroutine 562 sub main'data_byte subroutine 567 sub main'data_word subroutine 572 sub main'align subroutine 585 sub main'puts subroutine 597 sub main'putx subroutine 610 sub main'printf subroutine 655 sub main'picmeup subroutine 687 sub main'blindpop { &out1("popl",@_); } subroutine 689 sub main'initseg subroutine [all...] |