Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ gcc -S 20120713.c -O3 -o - -masm=intel -fno-asynchronous-unwind-tables -fno-dwarf2-cfi-asm
- .file "20120713.c"
- .intel_syntax noprefix
- .text
- .p2align 4,,15
- .globl interp_switch
- .type interp_switch, @function
- interp_switch:
- mov eax, esi
- .p2align 4,,10
- .p2align 3
- .L2:
- cmp BYTE PTR [rdi], 6
- jbe .L13
- .L3:
- rep
- ret
- .p2align 4,,10
- .p2align 3
- .L13:
- movzx edx, BYTE PTR [rdi]
- jmp [QWORD PTR .L10[0+rdx*8]]
- .section .rodata
- .align 8
- .align 4
- .L10:
- .quad .L3
- .quad .L4
- .quad .L5
- .quad .L6
- .quad .L7
- .quad .L8
- .quad .L9
- .text
- .p2align 4,,10
- .p2align 3
- .L8:
- add eax, 7
- .p2align 4,,10
- .p2align 3
- .L11:
- add rdi, 1
- jmp .L2
- .p2align 4,,10
- .p2align 3
- .L7:
- mov edx, eax
- shr edx, 31
- add eax, edx
- sar eax
- jmp .L11
- .p2align 4,,10
- .p2align 3
- .L6:
- add eax, eax
- jmp .L11
- .p2align 4,,10
- .p2align 3
- .L5:
- sub eax, 1
- jmp .L11
- .p2align 4,,10
- .p2align 3
- .L4:
- add eax, 1
- jmp .L11
- .p2align 4,,10
- .p2align 3
- .L9:
- neg eax
- jmp .L11
- .size interp_switch, .-interp_switch
- .p2align 4,,15
- .globl interp_cgoto
- .type interp_cgoto, @function
- interp_cgoto:
- movzx eax, BYTE PTR [rdi]
- mov rdx, QWORD PTR dispatch_table.1604[0+rax*8]
- mov eax, esi
- jmp rdx
- .p2align 4,,10
- .p2align 3
- .L16:
- rep
- ret
- .p2align 4,,10
- .p2align 3
- .L17:
- movzx edx, BYTE PTR [rdi+1]
- add eax, 1
- mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
- .p2align 4,,10
- .p2align 3
- .L18:
- add rdi, 1
- jmp rdx
- .p2align 4,,10
- .p2align 3
- .L19:
- movzx edx, BYTE PTR [rdi+1]
- sub eax, 1
- mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
- add rdi, 1
- jmp rdx
- .p2align 4,,10
- .p2align 3
- .L20:
- movzx edx, BYTE PTR [rdi+1]
- add eax, eax
- mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
- add rdi, 1
- jmp rdx
- .p2align 4,,10
- .p2align 3
- .L21:
- mov edx, eax
- shr edx, 31
- add eax, edx
- movzx edx, BYTE PTR [rdi+1]
- sar eax
- mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
- add rdi, 1
- jmp rdx
- .p2align 4,,10
- .p2align 3
- .L22:
- movzx edx, BYTE PTR [rdi+1]
- add eax, 7
- mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
- add rdi, 1
- jmp rdx
- .p2align 4,,10
- .p2align 3
- .L23:
- movzx edx, BYTE PTR [rdi+1]
- neg eax
- mov rdx, QWORD PTR dispatch_table.1604[0+rdx*8]
- add rdi, 1
- jmp rdx
- .size interp_cgoto, .-interp_cgoto
- .section .rodata
- .align 32
- .type dispatch_table.1604, @object
- .size dispatch_table.1604, 56
- dispatch_table.1604:
- .quad .L16
- .quad .L17
- .quad .L19
- .quad .L20
- .quad .L21
- .quad .L22
- .quad .L23
- .ident "GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1"
- .section .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement