Guest User

Untitled

a guest
Feb 21st, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. sark :: git/rbx » cat scratch/hello.rb
  2. puts "hello world"
  3.  
  4. sark :: git/rbx » ./vm/jit-test scratch/hello.rbc
  5. 0x800800 push %ebp
  6. 0x800801 mov %esp, %ebp
  7. 0x800803 sub $0xc, %esp
  8. 0x800809 push %edi
  9. 0x80080a push %esi
  10. 0x80080b push %ebx
  11. 0x80080c sub $0x10, %esp
  12. 0x800812 push 0x14(%ebp)
  13. 0x800818 push 0x10(%ebp)
  14. 0x80081e push 0xc(%ebp)
  15. 0x800824 push 0x8(%ebp)
  16. 0x80082a mov 0x10(%ebp), %esi
  17. 0x800830 mov 0x3c(%esi), %eax
  18. 0x800836 cmp $0x0, %eax
  19. 0x80083c jz 0x44 ; 0x800844
  20. 0x800842 jmp *%eax
  21. 0x800844 mov 0x8(%ebp), %eax
  22. 0x80084a mov 0x30(%eax), %ebx
  23. 0x800850 mov 0x10(%ebp), %esi
  24. 0x800856 mov 0x28(%esi), %eax
  25. 0x80085c add $0x4, %ebx
  26. 0x800862 mov %eax, 0x0(%ebx)
  27. 0x800868 mov 0x8(%ebp), %eax
  28. 0x80086e mov %ebx, 0x30(%eax)
  29. 0x800874 mov $0x0, 0x18(%esp)
  30. 0x80087f call 0xffffffffff80e8be ; 0xf0be op_push_literal
  31. 0x800884 call 0xffffffffff80ff4e ; 0x1074e op_string_dup
  32. 0x800889 mov 0xc(%ebp), %esi
  33. 0x80088f mov $0x1, 0x38(%esi)
  34. 0x800899 mov $0x1, 0x18(%esp)
  35. 0x8008a4 mov $0x1, 0x1c(%esp)
  36. 0x8008af call 0xffffffffff80eedc ; 0xf6dc op_send_stack
  37. 0x8008b4 mov $0x8008ca, %edx
  38. 0x8008b9 mov $0x7, %ecx
  39. 0x8008be cmp $0x1, %eax
  40. 0x8008c4 jz 0xfd ; 0x8008fd
  41. 0x8008ca mov 0x8(%ebp), %eax
  42. 0x8008d0 mov 0x30(%eax), %ebx
  43. 0x8008d6 sub $0x4, %ebx
  44. 0x8008dc add $0x4, %ebx
  45. 0x8008e2 mov $0xa, 0x0(%ebx)
  46. 0x8008ec mov 0x8(%ebp), %eax
  47. 0x8008f2 mov %ebx, 0x30(%eax)
  48. 0x8008f8 call 0xffffffffff80ea52 ; 0xf252 op_ret
  49. 0x8008fd mov 0x10(%ebp), %esi
  50. 0x800903 mov %ecx, 0x38(%esi)
  51. 0x800909 mov %edx, 0x3c(%esi)
  52. 0x80090f pop %ebx
  53. 0x800910 pop %esi
  54. 0x800911 pop %edi
  55. 0x800912 add $0x0, %esp
  56. 0x800918 leave
  57. 0x800919 ret
  58.  
  59. # with instruction specialization off
  60. sark :: git/rbx » ./vm/jit-test scratch/hello.rbc
  61. 0x800800 push %ebp
  62. 0x800801 mov %esp, %ebp
  63. 0x800803 sub $0xc, %esp
  64. 0x800809 push %edi
  65. 0x80080a push %esi
  66. 0x80080b push %ebx
  67. 0x80080c sub $0x10, %esp
  68. 0x800812 push 0x14(%ebp)
  69. 0x800818 push 0x10(%ebp)
  70. 0x80081e push 0xc(%ebp)
  71. 0x800824 push 0x8(%ebp)
  72. 0x80082a mov 0x10(%ebp), %esi
  73. 0x800830 mov 0x3c(%esi), %eax
  74. 0x800836 cmp $0x0, %eax
  75. 0x80083c jz 0x44 ; 0x800844
  76. 0x800842 jmp *%eax
  77. 0x800844 call 0xffffffffff80ddfa ; 0xe5fa op_push_self
  78. 0x800849 mov $0x0, 0x18(%esp)
  79. 0x800854 call 0xffffffffff80dd9e ; 0xe59e op_push_literal
  80. 0x800859 call 0xffffffffff80f42e ; 0xfc2e op_string_dup
  81. 0x80085e mov $0x1, 0x18(%esp)
  82. 0x800869 call 0xffffffffff80e8d6 ; 0xf0d6 op_set_call_flags
  83. 0x80086e mov $0x1, 0x18(%esp)
  84. 0x800879 mov $0x1, 0x1c(%esp)
  85. 0x800884 call 0xffffffffff80e3bc ; 0xebbc op_send_stack
  86. 0x800889 mov $0x80089f, %edx
  87. 0x80088e mov $0x7, %ecx
  88. 0x800893 cmp $0x1, %eax
  89. 0x800899 jz 0xae ; 0x8008ae
  90. 0x80089f call 0xffffffffff80e13a ; 0xe93a op_pop
  91. 0x8008a4 call 0xffffffffff80dcca ; 0xe4ca op_push_true
  92. 0x8008a9 call 0xffffffffff80df32 ; 0xe732 op_ret
  93. 0x8008ae mov 0x10(%ebp), %esi
  94. 0x8008b4 mov %ecx, 0x38(%esi)
  95. 0x8008ba mov %edx, 0x3c(%esi)
  96. 0x8008c0 pop %ebx
  97. 0x8008c1 pop %esi
  98. 0x8008c2 pop %edi
  99. 0x8008c3 add $0x0, %esp
  100. 0x8008c9 leave
  101. 0x8008ca ret
Add Comment
Please, Sign In to add comment