Created
December 2, 2008 01:06
-
-
Save evanphx/30928 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sark :: git/rbx » cat scratch/hello.rb | |
puts "hello world" | |
sark :: git/rbx » ./vm/jit-test scratch/hello.rbc | |
0x800800 push %ebp | |
0x800801 mov %esp, %ebp | |
0x800803 sub $0xc, %esp | |
0x800809 push %edi | |
0x80080a push %esi | |
0x80080b push %ebx | |
0x80080c sub $0x10, %esp | |
0x800812 push 0x14(%ebp) | |
0x800818 push 0x10(%ebp) | |
0x80081e push 0xc(%ebp) | |
0x800824 push 0x8(%ebp) | |
0x80082a mov 0x10(%ebp), %esi | |
0x800830 mov 0x3c(%esi), %eax | |
0x800836 cmp $0x0, %eax | |
0x80083c jz 0x44 ; 0x800844 | |
0x800842 jmp *%eax | |
0x800844 mov 0x8(%ebp), %eax | |
0x80084a mov 0x30(%eax), %ebx | |
0x800850 mov 0x10(%ebp), %esi | |
0x800856 mov 0x28(%esi), %eax | |
0x80085c add $0x4, %ebx | |
0x800862 mov %eax, 0x0(%ebx) | |
0x800868 mov 0x8(%ebp), %eax | |
0x80086e mov %ebx, 0x30(%eax) | |
0x800874 mov $0x0, 0x18(%esp) | |
0x80087f call 0xffffffffff80e8be ; 0xf0be op_push_literal | |
0x800884 call 0xffffffffff80ff4e ; 0x1074e op_string_dup | |
0x800889 mov 0xc(%ebp), %esi | |
0x80088f mov $0x1, 0x38(%esi) | |
0x800899 mov $0x1, 0x18(%esp) | |
0x8008a4 mov $0x1, 0x1c(%esp) | |
0x8008af call 0xffffffffff80eedc ; 0xf6dc op_send_stack | |
0x8008b4 mov $0x8008ca, %edx | |
0x8008b9 mov $0x7, %ecx | |
0x8008be cmp $0x1, %eax | |
0x8008c4 jz 0xfd ; 0x8008fd | |
0x8008ca mov 0x8(%ebp), %eax | |
0x8008d0 mov 0x30(%eax), %ebx | |
0x8008d6 sub $0x4, %ebx | |
0x8008dc add $0x4, %ebx | |
0x8008e2 mov $0xa, 0x0(%ebx) | |
0x8008ec mov 0x8(%ebp), %eax | |
0x8008f2 mov %ebx, 0x30(%eax) | |
0x8008f8 call 0xffffffffff80ea52 ; 0xf252 op_ret | |
0x8008fd mov 0x10(%ebp), %esi | |
0x800903 mov %ecx, 0x38(%esi) | |
0x800909 mov %edx, 0x3c(%esi) | |
0x80090f pop %ebx | |
0x800910 pop %esi | |
0x800911 pop %edi | |
0x800912 add $0x0, %esp | |
0x800918 leave | |
0x800919 ret | |
# with instruction specialization off | |
sark :: git/rbx » ./vm/jit-test scratch/hello.rbc | |
0x800800 push %ebp | |
0x800801 mov %esp, %ebp | |
0x800803 sub $0xc, %esp | |
0x800809 push %edi | |
0x80080a push %esi | |
0x80080b push %ebx | |
0x80080c sub $0x10, %esp | |
0x800812 push 0x14(%ebp) | |
0x800818 push 0x10(%ebp) | |
0x80081e push 0xc(%ebp) | |
0x800824 push 0x8(%ebp) | |
0x80082a mov 0x10(%ebp), %esi | |
0x800830 mov 0x3c(%esi), %eax | |
0x800836 cmp $0x0, %eax | |
0x80083c jz 0x44 ; 0x800844 | |
0x800842 jmp *%eax | |
0x800844 call 0xffffffffff80ddfa ; 0xe5fa op_push_self | |
0x800849 mov $0x0, 0x18(%esp) | |
0x800854 call 0xffffffffff80dd9e ; 0xe59e op_push_literal | |
0x800859 call 0xffffffffff80f42e ; 0xfc2e op_string_dup | |
0x80085e mov $0x1, 0x18(%esp) | |
0x800869 call 0xffffffffff80e8d6 ; 0xf0d6 op_set_call_flags | |
0x80086e mov $0x1, 0x18(%esp) | |
0x800879 mov $0x1, 0x1c(%esp) | |
0x800884 call 0xffffffffff80e3bc ; 0xebbc op_send_stack | |
0x800889 mov $0x80089f, %edx | |
0x80088e mov $0x7, %ecx | |
0x800893 cmp $0x1, %eax | |
0x800899 jz 0xae ; 0x8008ae | |
0x80089f call 0xffffffffff80e13a ; 0xe93a op_pop | |
0x8008a4 call 0xffffffffff80dcca ; 0xe4ca op_push_true | |
0x8008a9 call 0xffffffffff80df32 ; 0xe732 op_ret | |
0x8008ae mov 0x10(%ebp), %esi | |
0x8008b4 mov %ecx, 0x38(%esi) | |
0x8008ba mov %edx, 0x3c(%esi) | |
0x8008c0 pop %ebx | |
0x8008c1 pop %esi | |
0x8008c2 pop %edi | |
0x8008c3 add $0x0, %esp | |
0x8008c9 leave | |
0x8008ca ret | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment