|
|
{method}
- klass: {other class}
- method holder: 'ruby/__dash_e__'
- constants: 0x06b82a64{constant pool}
- access: 0x81000001 public
- name: 'method__0$RUBY$foo'
- signature: '(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;'
- max stack: 2
- max locals: 8
- size of params: 4
- method size: 20
- vtable index: 16
- code size: 42
- code start: 0xb14a5534
- code end (excl): 0xb14a555e
- method data: 0xb14ba698
- checked ex length: 0
- linenumber start: 0xb14a555e
- localvar length: 0
#
# org/jruby/runtime/builtin/IRubyObject * ( ruby/__dash_e__:NotNull *, org/jruby/runtime/ThreadContext:exact *, org/jruby/runtime/builtin/IRubyObject *, org/jruby/runtime/Block * )
#
#r000 ecx : parm 0: ruby/__dash_e__:NotNull *
#r005 edx : parm 1: org/jruby/runtime/ThreadContext:exact *
#r047 esp+84: parm 3: org/jruby/runtime/Block *
#r046 esp+80: parm 2: org/jruby/runtime/builtin/IRubyObject *
# -- Old esp -- Framesize: 80 --
#r045 esp+76: return address
#r044 esp+72: pad2, in_preserve
#r043 esp+68: pad2, in_preserve
#r042 esp+64: Fixed slot 0
#r063 esp+60: spill
#r062 esp+56: spill
#r061 esp+52: spill
#r060 esp+48: spill
#r059 esp+44: spill
#r058 esp+40: spill
#r057 esp+36: spill
#r056 esp+32: spill
#r055 esp+28: spill
#r054 esp+24: spill
#r053 esp+20: spill
#r052 esp+16: spill
#r051 esp+12: spill
#r050 esp+ 8: spill
#r049 esp+ 4: outgoing argument
#r048 esp+ 0: outgoing argument
#
000 N1485: # B1 <- BLOCK HEAD IS JUNK Freq: 10000
000 CMP EAX,[ECX+4] # Inline cache check
JNE SharedRuntime::handle_ic_miss_stub
NOP
NOP
NOP
000
00c B1: # B147 B2 <- BLOCK HEAD IS JUNK Freq: 10000
00c # stack bang
PUSHL EBP
SUB ESP,72 # Create frame
01a MOV ESI,[EDX + #40] ! Field org/jruby/runtime/ThreadContext.runtime
01d NullCheck EDX
01d
01d B2: # B146 B3 <- B1 Freq: 9999.99
01d MOV EDI,[ESI + #120] ! Field org/jruby/Ruby.fixnumCache
020 NullCheck ESI
020
020 B3: # B145 B4 <- B2 Freq: 9999.98
020 MOV [EDX + #72],java/lang/String:exact * ! Field org/jruby/runtime/ThreadContext.file
027 MOV [EDX + #24],#0 ! Field org/jruby/runtime/ThreadContext.line
02e MOV ECX,[EDI + #8]
031 NullCheck EDI
031
031 B4: # B144 B5 <- B3 Freq: 9999.97
031 CMPu ECX,#129
037 Jle,u B144 P=0.000001 C=-1.000000
037
03d B5: # B36 B6 <- B4 Freq: 9999.96
03d MOV EBP,[EDI + #528]
043 MOV EAX, Thread::current()
04f MOV [ESP + #84],EAX
053 MOV ECX,[EAX + #68]
056 LEA EDI,[ECX + #16]
059 CMPu EDI,[EAX + #76]
05c Jge,u B36 P=0.000100 C=-1.000000
05c
062 B6: # B7 <- B5 Freq: 9998.96
062 MOV [EAX + #68],EDI
065 PREFETCHNTA [EDI + #256] ! Prefetch into non-temporal cache for write
06c MOV [ECX],0x00000001
072 PREFETCHNTA [EDI + #320] ! Prefetch into non-temporal cache for write
079 MOV [ECX + #4],precise klass [Lorg/jruby/runtime/builtin/IRubyObject;: 0x081f9750:Constant:exact *
080 PREFETCHNTA [EDI + #384] ! Prefetch into non-temporal cache for write
087 MOV [ECX + #8],#1
087
08e B7: # B38 B8 <- B37 B6 Freq: 9999.96
08e MOV [ECX + #12],EBP
091
091 #checkcastPP of ECX
091 MOV EBX,[ESP + #84]
095 MOV EBX,[EBX + #68]
098 LEA EDI,[EBX + #56]
09b MOV EAX,[ESP + #84]
09f CMPu EDI,[EAX + #76]
0a2 Jge,u B38 P=0.000100 C=-1.000000
0a2
0a8 B8: # B9 <- B7 Freq: 9998.96
0a8 MOV [EAX + #68],EDI
0ab PREFETCHNTA [EDI + #256] ! Prefetch into non-temporal cache for write
0b2 MOV EDI,precise klass org/jruby/RubyArray: 0x081f9798:Constant:exact *
0b7 MOV EBP,[EDI + #104]
0ba MOV [EBX],EBP
0bc MOV [EBX + #4],precise klass org/jruby/RubyArray: 0x081f9798:Constant:exact *
0c3 XOR EAX.lo,EAX.lo
XOR EAX.hi,EAX.hi
0c7 MOV [EBX + #8],EAX.lo
MOV [EBX + #8]+4,EAX.hi
0cd MOV [EBX + #16],#0
0d4 MOV [EBX + #24],EAX.lo
MOV [EBX + #24]+4,EAX.hi
0da MOV [EBX + #32],EAX.lo
MOV [EBX + #32]+4,EAX.hi
0e0 MOV [EBX + #40],EAX.lo
MOV [EBX + #40]+4,EAX.hi
0e6 MOV [EBX + #48],EAX.lo
MOV [EBX + #48]+4,EAX.hi
0e6
0ec B9: # B40 B10 <- B39 B8 Freq: 9999.96
0ec MOV EBP,[ESI + #188] ! Field org/jruby/Ruby.arrayClass
0f2 MOV [EBX + #20],EBP
0f5
0f5 #checkcastPP of EBX
0f5 MOVSX8 EDX,[ESI + #55] ! Field Volatileorg/jruby/Ruby.objectSpaceEnabled
0f9 MOV EBP, EBX # CastP2X
0fb SHR EBP,#9
0fe MOV8 [EBP + 0x911b9500],#0
105 MEMBAR-acquire
105 TEST EDX,EDX
107 Jne B40 P=0.000000 C=6701.000000
107
10d B10: # B42 B11 <- B41 B9 Freq: 9999.96
10d MOV EDI,[ESI + #48] ! Field org/jruby/Ruby.safeLevel
110 CMP EDI,#3
113 Jge B42 P=0.000000 C=6701.000000
113
119 B11: # B73 B12 <- B43 B10 Freq: 9999.96
119 MEMBAR-release
119 MOV8 [EBX + #44],#0 ! Field Volatileorg/jruby/RubyArray.isShared
11d MEMBAR-volatile (unnecessary so empty encoding)
11d MEMBAR-volatile (unnecessary so empty encoding)
11d MEMBAR-volatile (unnecessary so empty encoding)
11d MEMBAR-volatile (unnecessary so empty encoding)
11d MEMBAR-volatile (unnecessary so empty encoding)
11d MOV [EBX + #40],#0 ! Field org/jruby/RubyArray.realLength
124 MOV [EBX + #36],#0 ! Field org/jruby/RubyArray.begin
12b MEMBAR-release
12b MOV [EBX + #48],ECX ! Field Volatileorg/jruby/RubyArray.values
12e MEMBAR-volatile (unnecessary so empty encoding)
12e MEMBAR-volatile (unnecessary so empty encoding)
12e MEMBAR-volatile (unnecessary so empty encoding)
12e MEMBAR-volatile (unnecessary so empty encoding)
12e MEMBAR-volatile
12e MOV EBP,[EBX + #16] ! Field org/jruby/RubyObject.flags
131 MOV [EBX + #40],#1 ! Field org/jruby/RubyArray.realLength
138 MOV ECX, EBX # CastP2X
13a SHR ECX,#9
13d MOV8 [ECX + 0x911b9500],#0
144 TEST EBP,#2
14a Jne B73 P=0.000000 C=6701.000000
14a
150 B12: # B72 B13 <- B11 Freq: 9999.96
150 MOV EDI,EBX
152 #checkcastPP of EDI
152 MOV EBP,[EDI + #4]
155 CMPu EBP,precise klass org/jruby/RubyArray: 0x081f9798:Constant:exact *
15b Jne,u B72 P=0.000001 C=-1.000000
15b
161 B13: # B44 B14 <- B12 Freq: 9999.94
161 #checkcastPP of EDI
161 MOV EBP,[EDI + #16] ! Field org/jruby/RubyObject.flags
164 TEST EBP,#2
16a Jne B44 P=0.000000 C=6701.000000
16a
170 B14: # B135 B15 <- B76 B55 B64 B13 Freq: 9999.95
170 TEST EDI,EDI
172 Jeq B135 P=0.000001 C=-1.000000
172
178 B15: # B106 B16 <- B14 Freq: 9999.94
178 #checkcastPP of EDI
178 MOV ECX,[EDI + #16] ! Field org/jruby/RubyObject.flags
17b TEST ECX,#2
181 Jne B106 P=0.000000 C=6701.000000
181
187 B16: # B105 B17 <- B15 Freq: 9999.93
187 MOV EBX,EDI
189 #checkcastPP of EBX
189 MOV ECX,[EBX + #4]
18c CMPu ECX,precise klass org/jruby/RubyArray: 0x081f9798:Constant:exact *
192 Jne,u B105 P=0.000001 C=-1.000000
192
198 B17: # B77 B18 <- B16 Freq: 9999.92
198 #checkcastPP of EBX
198 MOV [ESP + #16],EBX
19c MOV ECX,[EBX + #16] ! Field org/jruby/RubyObject.flags
19f TEST ECX,#2
1a5 Jne B77 P=0.000000 C=6701.000000
1a5
1ab B18: # B32 B19 <- B109 B88 B97 B17 Freq: 9999.93
1ab MOV EBX,[ESP + #16]
1af TEST EBX,EBX
1b1 Jeq B32 P=0.001000 C=-1.000000
1b1
1b7 B19: # B129 B20 <- B18 Freq: 9989.93
1b7 MOV ECX,[ESP + #16]
1bb MOV EBP,[ECX + #20] ! Field org/jruby/RubyObject.metaClass
1be MOV ECX,[EBP + #104] ! Field org/jruby/RubyClass.runtime
1c1 NullCheck EBP
1c1
1c1 B20: # B128 B21 <- B19 Freq: 9989.92
1c1 MOV [ESP + #80],ECX
1c5 MOV ESI,[EBX + #40] ! Field org/jruby/RubyArray.realLength
1c8 MOV EAX,[ECX + #120] ! Field org/jruby/Ruby.fixnumCache
1cb NullCheck ECX
1cb
1cb B21: # B113 B22 <- B20 Freq: 9989.91
1cb MOV ECX.lo,ESI
MOV ECX.hi,ESI
SAR ECX.hi,31
1d2 MOV EBP,ECX
MOV EDI,EBX
1d6 MOV ECX.lo,#127.lo
MOV ECX.hi,#127.hi
1dd CMP ECX.lo,EBP.lo ! Long compare, swapped operands, use with commuted test
MOV EDX,ECX.hi
SBB EDX,EBP.hi ! Compute flags for long compare
1e3 Jgt B113 P=0.000000 C=6701.000000
1e3
1e9 B22: # B113 B23 <- B21 Freq: 9989.9
1e9 MOV ECX.lo,#-128.lo
MOV ECX.hi,#-128.hi
1f3 CMP EBP.lo,ECX.lo ! Long compare; set flags for low bits
MOV EDX,EBP.hi
SBB EDX,ECX.hi ! Compute flags for long compare
1f9 Jlt B113 P=0.000000 C=6701.000000
1f9
1ff B23: # B112 B24 <- B22 Freq: 9989.9
1ff MOV ECX,ESI
201 ADD ECX,#128
207 MOV EBP,[EAX + #8]
20a NullCheck EAX
20a
20a B24: # B111 B25 <- B23 Freq: 9989.89
20a CMPu ECX,EBP
20c Jge,u B111 P=0.000001 C=-1.000000
20c
212 B25: # B110 B26 <- B24 Freq: 9989.88
212 MOV ESI,[EAX + #524 + ESI << #2]
219 TEST ESI,ESI
21b Jeq B110 P=0.000001 C=-1.000000
21b
221 B26: # B32 B27 <- B25 B117 Freq: 9989.88
221 MOV ECX.lo,[ESI + #40]
MOV ECX.hi,[ESI + #40]+4 ! Field org/jruby/RubyFixnum.value
227 MOV EBP,ECX.lo
OR EBP,ECX.hi ! Long is EQ/NE 0?
22b Jeq,s B32 P=0.000000 C=10000.000000
22b
22d B27: # B125 B28 <- B26 Freq: 9989.87
22d MOV ECX,[ESP + #16]
231 MOV ECX,[ECX + #40] ! Field org/jruby/RubyArray.realLength
234 CMP ECX,#1
237 Jne B125 P=0.000000 C=10000.000000
237
23d B28: # B120 B29 <- B27 Freq: 9989.87
23d TEST ECX,ECX
23f Jeq B120 P=0.000000 C=10000.000000
23f
245 B29: # B119 B30 <- B28 Freq: 9989.86
245 MOV EBX,[ESP + #16]
249 MOV EBP,[EBX + #48] ! Field Volatileorg/jruby/RubyArray.values
24c MEMBAR-acquire
24c MOV ECX,[ESP + #16]
250 MOV EBX,[ECX + #36] ! Field org/jruby/RubyArray.begin
253 MOV EDI,[EBP + #8]
256 NullCheck EBP
256
256 B30: # B118 B31 <- B29 Freq: 9989.85
256 CMPu EBX,EDI
258 Jge,u B118 P=0.000001 C=-1.000000
258
25e B31: # B35 <- B30 Freq: 9989.84
25e MOV EAX,[EBP + #12 + EBX << #2]
262 JMP,s B35
262
264 B32: # B131 B33 <- B26 B18 Freq: 10.0046
264 MOV ECX,[ESP + #16]
268 NOP # 2 bytes pad for loops and calls
26a MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::getRuntime
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:23 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
274
274 B33: # B130 B34 <- B32 Freq: 10.0044
# Block is sole successor of call
274 MOV EBX,EAX
276 MOV EAX,[EAX + #108] ! Field org/jruby/Ruby.nilObject
279 NullCheck EAX
279
279 B34: # B35 <- B33 Freq: 10.0044
279 #checkcastPP of EAX
279
279 B35: # N1485 <- B34 B125 B122 B31 Freq: 9999.86
279 ADD ESP,72 # Destroy frame
POPL EBP
TEST PollPage,EAX ! Poll Safepoint
283 RET
283
284 B36: # B142 B37 <- B5 Freq: 1.00016
284 MOV [ESP + #80],ESI
288 MOV EDX,#1
28d MOV ECX,precise klass [Lorg/jruby/runtime/builtin/IRubyObject;: 0x081f9750:Constant:exact *
292 NOP # 1 bytes pad for loops and calls
293 CALL,static wrapper for: _new_array_Java
# org.jruby.javasupport.util.RuntimeHelpers::constructObjectArray @ bci:1 L[0]=EBP
# ruby.__dash_e__::method__0$RUBY$foo @ bci:25 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_ STK[0]=esp + #80
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
298
298 B37: # B7 <- B36 Freq: 1.00014
# Block is sole successor of call
298 MOV ESI,[ESP + #80]
29c MOV ECX,EAX
29e JMP B7
29e
2a3 B38: # B141 B39 <- B7 Freq: 1.00016
2a3 MOV [ESP + #80],ECX
2a7 MOV EBP,ESI
2a9 MOV ECX,precise klass org/jruby/RubyArray: 0x081f9798:Constant:exact *
2ae NOP # 1 bytes pad for loops and calls
2af CALL,static wrapper for: _new_instance_Java
# org.jruby.RubyArray::newArrayNoCopy @ bci:0 L[0]=EBP L[1]=esp + #80
# ruby.__dash_e__::method__0$RUBY$foo @ bci:28 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
2b4
2b4 B39: # B9 <- B38 Freq: 1.00014
# Block is sole successor of call
2b4 MOV ESI,EBP
2b6 MOV ECX,[ESP + #80]
2ba MOV EBX,EAX
2bc JMP B9
2bc
2c1 B40: # B140 B41 <- B9 Freq: 0.00476835
2c1 MOV [ESP + #12],EBX
2c5 MOV [ESP + #8],ECX
2c9 MOV EBP,ESI
2cb MOV ECX,[ESP + #12]
2cf MOV EDX,ESI
2d1 NOP # 2 bytes pad for loops and calls
2d3 CALL,static org.jruby.RubyObject::addToObjectSpace
# org.jruby.RubyObject:: @ bci:38 L[0]=esp + #12 L[1]=EBP L[2]=_
# org.jruby.RubyArray:: @ bci:6 L[0]=esp + #12 L[1]=_ L[2]=esp + #8
# org.jruby.RubyArray::newArrayNoCopy @ bci:6 L[0]=_ L[1]=_ STK[0]=esp + #12
# ruby.__dash_e__::method__0$RUBY$foo @ bci:28 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
2d8
2d8 B41: # B10 <- B40 Freq: 0.00476826
# Block is sole successor of call
2d8 MOV ESI,EBP
2da MOV ECX,[ESP + #8]
2de MOV EBX,[ESP + #12]
2e2 JMP B10
2e2
2e7 B42: # B139 B43 <- B10 Freq: 0.00476835
2e7 MOV [ESP + #8],EBX
2eb MOV [ESP + #80],ECX
2ef MOV ECX,[ESP + #8]
2f3 MOV EDX,ESI
2f5 NOP # 2 bytes pad for loops and calls
2f7 CALL,static org.jruby.RubyObject::taint
# org.jruby.RubyObject:: @ bci:51 L[0]=_ L[1]=_ L[2]=_
# org.jruby.RubyArray:: @ bci:6 L[0]=esp + #8 L[1]=_ L[2]=esp + #80
# org.jruby.RubyArray::newArrayNoCopy @ bci:6 L[0]=_ L[1]=_ STK[0]=esp + #8
# ruby.__dash_e__::method__0$RUBY$foo @ bci:28 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
2fc
2fc B43: # B11 <- B42 Freq: 0.00476826
# Block is sole successor of call
2fc MOV ECX,[ESP + #80]
300 MOV EBX,[ESP + #8]
304 JMP B11
304
309 B44: # B71 B45 <- B13 Freq: 0.00476835
309 MOV [ESP + #80],EBX
30d MOV EBP,[ESP + #84]
311 MOV ECX,EBX
313 NOP # 3 bytes pad for loops and calls
316 MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::getRuntime
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:17 L[0]=esp + #80 L[1]=_ L[2]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
320
320 B45: # B70 B46 <- B44 Freq: 0.00476825
# Block is sole successor of call
320 MOV [ESP + #84],EAX
324 MOV ECX,[ESP + #80]
328 NOP # 2 bytes pad for loops and calls
32a MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::getMetaClass
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:24 L[0]=esp + #80 L[1]=_ L[2]=esp + #84
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
334
334 B46: # B69 B47 <- B45 Freq: 0.00476815
# Block is sole successor of call
334 TEST EAX,EAX
336 Jeq B69 P=0.000001 C=-1.000000
336
33c B47: # B68 B48 <- B46 Freq: 0.00476815
33c MOV ECX,EAX
33e MOV EDX,java/lang/String:exact *
343 CALL,static org.jruby.RubyModule::searchMethod
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:32 L[0]=esp + #80 L[1]=_ L[2]=esp + #84
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
348
348 B48: # B67 B49 <- B47 Freq: 0.00476805
# Block is sole successor of call
348 MOV ECX,[EAX + #8] ! Field org/jruby/internal/runtime/methods/DynamicMethod.implementationClass
34b NullCheck EAX
34b
34b B49: # B66 B50 <- B48 Freq: 0.00476805
34b MOV EBX,[ESP + #84]
34f MOV EDI,[EBX + #416] ! Field org/jruby/Ruby.kernelModule
355 NullCheck EBX
355
355 B50: # B63 B51 <- B49 Freq: 0.00476804
355 CMPu ECX,EDI
357 Jeq,u B63 P=0.100000 C=-1.000000
357
35d B51: # B62 B52 <- B50 Freq: 0.00429124
35d MOV ECX,EBX
35f CALL,static org.jruby.Ruby::getCurrentContext
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:47 L[0]=_ L[1]=_ L[2]=esp + #84 STK[0]=esp + #80
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
364
364 B52: # B61 B53 <- B51 Freq: 0.00429115
# Block is sole successor of call
364 MOV ECX,[ESP + #80]
368 MOV EDX,EAX
36a MOV EBX,java/lang/String:exact *
36f MOV [ESP + #0],EBX
372 MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::callMethod
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:53 L[0]=_ L[1]=_ L[2]=esp + #84
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
37c
37c B53: # B56 B54 <- B52 Freq: 0.00429107
# Block is sole successor of call
37c MOV EDI,EAX
37e TEST EAX,EAX
380 Jeq,s B56 P=0.001000 C=-1.000000
380
382 B54: # B56 B55 <- B53 Freq: 0.00428678
382 MOV ECX,[EAX + #4]
385 CMPu ECX,precise klass org/jruby/RubyArray: 0x081f9798:Constant:exact *
38b Jne,us B56 P=0.100000 C=-1.000000
38b
38d B55: # B14 <- B54 Freq: 0.0038581
38d #checkcastPP of EDI
38d MOV [ESP + #84],EBP
391 JMP B14
391
396 B56: # B60 B57 <- B54 B53 Freq: 0.000432969
396 MOV ECX,[ESP + #84]
39a MOV EDX,java/lang/String:exact *
39f CALL,static org.jruby.Ruby::newTypeError
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:70 L[0]=_ L[1]=_ L[2]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
3a4
3a4 B57: # B59 B58 <- B56 Freq: 0.00043296
# Block is sole successor of call
3a4 TEST EAX,EAX
3a6 Jeq,s B59 P=0.000001 C=-1.000000
3a6
3a8 B58: # B143 <- B57 Freq: 0.00043296
3a8 MOV ECX,EAX
3aa JMP B143
3aa
3af B59: # N1485 <- B57 Freq: 1e-06
3af MOV ECX,#-10
3b4 MOV EBP,EAX
3b6 NOP # 1 bytes pad for loops and calls
3b7 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:73 L[0]=_ L[1]=_ L[2]=_ STK[0]=EBP
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
3bc INT3 ; ShouldNotReachHere
3bc
3c1 B60: # B143 <- B56 Freq: 4.32969e-09
3c1 # exception oop is in EAX; no code emitted
3c1 MOV ECX,EAX
3c3 JMP B143
3c3
3c8 B61: # B143 <- B52 Freq: 4.29115e-08
3c8 # exception oop is in EAX; no code emitted
3c8 MOV ECX,EAX
3ca JMP B143
3ca
3cf B62: # B143 <- B51 Freq: 4.29124e-08
3cf # exception oop is in EAX; no code emitted
3cf MOV ECX,EAX
3d1 JMP B143
3d1
3d6 B63: # B65 B64 <- B50 Freq: 0.000476805
3d6 MOV ECX,EBX
3d8 MOV EDX,[ESP + #80]
3dc NOP # 3 bytes pad for loops and calls
3df CALL,static org.jruby.RubyArray::newArray
# org.jruby.Ruby::newArray @ bci:2 L[0]=_ L[1]=_
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:81 L[0]=_ L[1]=_ L[2]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
3e4
3e4 B64: # B14 <- B63 Freq: 0.000476795
# Block is sole successor of call
3e4 MOV [ESP + #84],EBP
3e8 MOV EDI,EAX
3ea JMP B14
3ea
3ef B65: # B143 <- B63 Freq: 4.76805e-09
3ef # exception oop is in EAX; no code emitted
3ef MOV ECX,EAX
3f1 JMP B143
3f1
3f6 B66: # N1485 <- B49 Freq: 1e-06
3f6 MOV ECX,#-10
3fb MOV EBP,EBX
3fd NOP # 2 bytes pad for loops and calls
3ff CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:39 L[0]=_ L[1]=_ L[2]=_ STK[0]=_ STK[1]=EBP
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
404 INT3 ; ShouldNotReachHere
404
409 B67: # N1485 <- B48 Freq: 1e-06
409 MOV ECX,#-10
40e MOV EBP,EAX
410 NOP # 3 bytes pad for loops and calls
413 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:35 L[0]=_ L[1]=_ L[2]=_ STK[0]=EBP
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
418 INT3 ; ShouldNotReachHere
418
41d B68: # B143 <- B47 Freq: 4.76815e-08
41d # exception oop is in EAX; no code emitted
41d MOV ECX,EAX
41f JMP B143
41f
424 B69: # N1485 <- B46 Freq: 1e-06
424 MOV ECX,#-10
429 MOV EBP,EAX
42b CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:32 L[0]=_ L[1]=_ L[2]=_ STK[0]=EBP STK[1]=#Ptr0x08266f30
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
430 INT3 ; ShouldNotReachHere
430
435 B70: # B143 <- B45 Freq: 4.76825e-08
435 # exception oop is in EAX; no code emitted
435 MOV ECX,EAX
437 JMP B143
437
43c B71: # B143 <- B44 Freq: 4.76835e-08
43c # exception oop is in EAX; no code emitted
43c MOV ECX,EAX
43e JMP B143
43e
443 B72: # N1485 <- B12 Freq: 1e-06
443 MOV ECX,#-34
448 MOV EBP,EBX
44a MOV [ESP + #80],EDI
44e NOP # 1 bytes pad for loops and calls
44f CALL,static wrapper for: uncommon_trap(reason='class_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:8 L[0]=EBP L[1]=esp + #80 L[2]=_ STK[0]=esp + #80
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
454 INT3 ; ShouldNotReachHere
454
459 B73: # B138 B74 <- B11 Freq: 0.00476835
459 MOV [ESP + #80],EBX
45d MOV ECX,EBX
45f NOP # 3 bytes pad for loops and calls
462 MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::getRuntime
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:10 L[0]=esp + #80
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
46c
46c B74: # B137 B75 <- B73 Freq: 0.00476826
# Block is sole successor of call
46c TEST EAX,EAX
46e Jeq B137 P=0.000001 C=-1.000000
46e
474 B75: # B136 B76 <- B74 Freq: 0.00476825
474 MOV ECX,EAX
476 MOV EDX,[ESP + #80]
47a NOP # 1 bytes pad for loops and calls
47b CALL,static org.jruby.RubyArray::newArray
# org.jruby.Ruby::newArray @ bci:2 L[0]=_ L[1]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:16 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
480
480 B76: # B14 <- B75 Freq: 0.00476816
# Block is sole successor of call
480 MOV EDI,EAX
482 JMP B14
482
487 B77: # B104 B78 <- B17 Freq: 0.00476834
487 MOV [ESP + #80],EDI
48b MOV EBP,[ESP + #84]
48f MOV ECX,EDI
491 NOP # 1 bytes pad for loops and calls
492 MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::getRuntime
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:17 L[0]=esp + #80 L[1]=_ L[2]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
49c
49c B78: # B103 B79 <- B77 Freq: 0.00476824
# Block is sole successor of call
49c MOV [ESP + #84],EAX
4a0 MOV ECX,[ESP + #80]
4a4 NOP # 2 bytes pad for loops and calls
4a6 MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::getMetaClass
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:24 L[0]=esp + #80 L[1]=_ L[2]=esp + #84
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
4b0
4b0 B79: # B102 B80 <- B78 Freq: 0.00476814
# Block is sole successor of call
4b0 TEST EAX,EAX
4b2 Jeq B102 P=0.000001 C=-1.000000
4b2
4b8 B80: # B101 B81 <- B79 Freq: 0.00476814
4b8 MOV ECX,EAX
4ba MOV EDX,java/lang/String:exact *
4bf CALL,static org.jruby.RubyModule::searchMethod
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:32 L[0]=esp + #80 L[1]=_ L[2]=esp + #84
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
4c4
4c4 B81: # B100 B82 <- B80 Freq: 0.00476804
# Block is sole successor of call
4c4 MOV EBX,[EAX + #8] ! Field org/jruby/internal/runtime/methods/DynamicMethod.implementationClass
4c7 NullCheck EAX
4c7
4c7 B82: # B99 B83 <- B81 Freq: 0.00476804
4c7 MOV EAX,[ESP + #84]
4cb MOV ECX,[EAX + #416] ! Field org/jruby/Ruby.kernelModule
4d1 NullCheck EAX
4d1
4d1 B83: # B96 B84 <- B82 Freq: 0.00476803
4d1 CMPu EBX,ECX
4d3 Jeq,u B96 P=0.100000 C=-1.000000
4d3
4d9 B84: # B95 B85 <- B83 Freq: 0.00429123
4d9 MOV ECX,EAX
4db CALL,static org.jruby.Ruby::getCurrentContext
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:47 L[0]=_ L[1]=_ L[2]=esp + #84 STK[0]=esp + #80
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
4e0
4e0 B85: # B94 B86 <- B84 Freq: 0.00429115
# Block is sole successor of call
4e0 MOV ECX,[ESP + #80]
4e4 MOV EDX,EAX
4e6 MOV EDI,java/lang/String:exact *
4eb MOV [ESP + #0],EDI
4ee MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::callMethod
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:53 L[0]=_ L[1]=_ L[2]=esp + #84
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
4f8
4f8 B86: # B89 B87 <- B85 Freq: 0.00429106
# Block is sole successor of call
4f8 TEST EAX,EAX
4fa Jeq,s B89 P=0.001000 C=-1.000000
4fa
4fc B87: # B89 B88 <- B86 Freq: 0.00428677
4fc MOV ECX,[EAX + #4]
4ff CMPu ECX,precise klass org/jruby/RubyArray: 0x081f9798:Constant:exact *
505 Jne,us B89 P=0.100000 C=-1.000000
505
507 B88: # B18 <- B87 Freq: 0.00385809
507 MOV ECX,EAX
509 #checkcastPP of ECX
509 MOV [ESP + #16],ECX
50d MOV [ESP + #84],EBP
511 JMP B18
511
516 B89: # B93 B90 <- B87 B86 Freq: 0.000432968
516 MOV ECX,[ESP + #84]
51a MOV EDX,java/lang/String:exact *
51f CALL,static org.jruby.Ruby::newTypeError
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:70 L[0]=_ L[1]=_ L[2]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
524
524 B90: # B92 B91 <- B89 Freq: 0.000432959
# Block is sole successor of call
524 TEST EAX,EAX
526 Jeq,s B92 P=0.000001 C=-1.000000
526
528 B91: # B143 <- B90 Freq: 0.000432959
528 MOV ECX,EAX
52a JMP B143
52a
52f B92: # N1485 <- B90 Freq: 1e-06
52f MOV ECX,#-10
534 MOV EBP,EAX
536 NOP # 1 bytes pad for loops and calls
537 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:73 L[0]=_ L[1]=_ L[2]=_ STK[0]=EBP
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
53c INT3 ; ShouldNotReachHere
53c
541 B93: # B143 <- B89 Freq: 4.32968e-09
541 # exception oop is in EAX; no code emitted
541 MOV ECX,EAX
543 JMP B143
543
548 B94: # B143 <- B85 Freq: 4.29114e-08
548 # exception oop is in EAX; no code emitted
548 MOV ECX,EAX
54a JMP B143
54a
54f B95: # B143 <- B84 Freq: 4.29123e-08
54f # exception oop is in EAX; no code emitted
54f MOV ECX,EAX
551 JMP B143
551
556 B96: # B98 B97 <- B83 Freq: 0.000476804
556 MOV ECX,EAX
558 MOV EDX,[ESP + #80]
55c NOP # 3 bytes pad for loops and calls
55f CALL,static org.jruby.RubyArray::newArray
# org.jruby.Ruby::newArray @ bci:2 L[0]=_ L[1]=_
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:81 L[0]=_ L[1]=_ L[2]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
564
564 B97: # B18 <- B96 Freq: 0.000476794
# Block is sole successor of call
564 MOV [ESP + #84],EBP
568 MOV [ESP + #16],EAX
56c JMP B18
56c
571 B98: # B143 <- B96 Freq: 4.76803e-09
571 # exception oop is in EAX; no code emitted
571 MOV ECX,EAX
573 JMP B143
573
578 B99: # N1485 <- B82 Freq: 1e-06
578 MOV ECX,#-10
57d MOV EBP,EAX
57f CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:39 L[0]=_ L[1]=_ L[2]=_ STK[0]=_ STK[1]=EBP
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
584 INT3 ; ShouldNotReachHere
584
589 B100: # N1485 <- B81 Freq: 1e-06
589 MOV ECX,#-10
58e MOV EBP,EAX
590 NOP # 3 bytes pad for loops and calls
593 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:35 L[0]=_ L[1]=_ L[2]=_ STK[0]=EBP
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
598 INT3 ; ShouldNotReachHere
598
59d B101: # B143 <- B80 Freq: 4.76814e-08
59d # exception oop is in EAX; no code emitted
59d MOV ECX,EAX
59f JMP B143
59f
5a4 B102: # N1485 <- B79 Freq: 1e-06
5a4 MOV ECX,#-10
5a9 MOV EBP,EAX
5ab CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:32 L[0]=_ L[1]=_ L[2]=_ STK[0]=EBP STK[1]=#Ptr0x08266f30
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
5b0 INT3 ; ShouldNotReachHere
5b0
5b5 B103: # B143 <- B78 Freq: 4.76824e-08
5b5 # exception oop is in EAX; no code emitted
5b5 MOV ECX,EAX
5b7 JMP B143
5b7
5bc B104: # B143 <- B77 Freq: 4.76834e-08
5bc # exception oop is in EAX; no code emitted
5bc MOV ECX,EAX
5be JMP B143
5be
5c3 B105: # N1485 <- B16 Freq: 1e-06
5c3 MOV ECX,#-34
5c8 MOV EBP,EDI
5ca MOV [ESP + #80],EBX
5ce NOP # 1 bytes pad for loops and calls
5cf CALL,static wrapper for: uncommon_trap(reason='class_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::arrayValue @ bci:8 L[0]=EBP L[1]=esp + #80 L[2]=_ STK[0]=esp + #80
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:21 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
5d4 INT3 ; ShouldNotReachHere
5d4
5d9 B106: # B134 B107 <- B15 Freq: 0.00476834
5d9 MOV [ESP + #80],EDI
5dd MOV ECX,EDI
5df NOP # 3 bytes pad for loops and calls
5e2 MOV EAX,(oop)-1
CALL,dynamic org.jruby.runtime.builtin.IRubyObject::getRuntime
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:10 L[0]=esp + #80
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
5ec
5ec B107: # B133 B108 <- B106 Freq: 0.00476825
# Block is sole successor of call
5ec TEST EAX,EAX
5ee Jeq B133 P=0.000001 C=-1.000000
5ee
5f4 B108: # B132 B109 <- B107 Freq: 0.00476824
5f4 MOV ECX,EAX
5f6 MOV EDX,[ESP + #80]
5fa NOP # 1 bytes pad for loops and calls
5fb CALL,static org.jruby.RubyArray::newArray
# org.jruby.Ruby::newArray @ bci:2 L[0]=_ L[1]=_
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:16 L[0]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
600
600 B109: # B18 <- B108 Freq: 0.00476815
# Block is sole successor of call
600 MOV [ESP + #16],EAX
604 JMP B18
604
609 B110: # N1485 <- B25 Freq: 1e-06
609 MOV ECX,#-10
60e MOV EBP,ESI
610 NOP # 3 bytes pad for loops and calls
613 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:14 L[0]=_ L[1]=_ STK[0]=EBP
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
618 INT3 ; ShouldNotReachHere
618
61d B111: # N1485 <- B24 Freq: 1e-06
61d MOV [ESP + #80],EAX
621 MOV [ESP + #84],ECX
625 MOV ECX,#-28
62a NOP # 1 bytes pad for loops and calls
62b CALL,static wrapper for: uncommon_trap(reason='range_check' action='make_not_entrant')
# org.jruby.RubyFixnum::newFixnum @ bci:17 L[0]=_ L[1]=_ L[2]=_ STK[0]=esp + #80 STK[1]=esp + #84
# org.jruby.Ruby::newFixnum @ bci:3 L[0]=_ L[1]=_
# org.jruby.RubyArray::length @ bci:8 L[0]=_
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:11 L[0]=esp + #16 L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
630 INT3 ; ShouldNotReachHere
630
635 B112: # N1485 <- B23 Freq: 1e-06
635 MOV EBP,EAX
637 MOV [ESP + #80],ECX
63b MOV ECX,#-10
640 NOP # 3 bytes pad for loops and calls
643 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.RubyFixnum::newFixnum @ bci:17 L[0]=_ L[1]=_ L[2]=_ STK[0]=EBP STK[1]=esp + #80
# org.jruby.Ruby::newFixnum @ bci:3 L[0]=_ L[1]=_
# org.jruby.RubyArray::length @ bci:8 L[0]=_
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:11 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
648 INT3 ; ShouldNotReachHere
648
64d B113: # B115 B114 <- B22 B21 Freq: 0.00975851
64d MOV [ESP + #8],EBP
MOV [ESP + #12],EDI
655 MOV EBX,[ESP + #84]
659 MOV EAX,[EBX + #68]
65c LEA ECX,[EAX + #48]
65f CMPu ECX,[EBX + #76]
662 Jge,us B115 P=0.000100 C=-1.000000
662
664 B114: # B116 <- B113 Freq: 0.00975753
664 MOV [EBX + #68],ECX
667 PREFETCHNTA [ECX + #256] ! Prefetch into non-temporal cache for write
66e MOV EBX,precise klass org/jruby/RubyFixnum: 0x081f9090:Constant:exact *
673 MOV ECX,[EBX + #104]
676 MOV [EAX],ECX
678 MOV [EAX + #4],precise klass org/jruby/RubyFixnum: 0x081f9090:Constant:exact *
67f XOR ECX.lo,ECX.lo
XOR ECX.hi,ECX.hi
683 MOV [EAX + #8],ECX.lo
MOV [EAX + #8]+4,ECX.hi
689 MOV [EAX + #16],ECX.lo
MOV [EAX + #16]+4,ECX.hi
68f MOV [EAX + #24],ECX.lo
MOV [EAX + #24]+4,ECX.hi
695 MOV [EAX + #32],ECX.lo
MOV [EAX + #32]+4,ECX.hi
69b MOV [EAX + #40],ECX.lo
MOV [EAX + #40]+4,ECX.hi
6a1 JMP,s B116
6a1
6a3 B115: # B127 B116 <- B113 Freq: 9.76013e-07
6a3 MOV ECX,precise klass org/jruby/RubyFixnum: 0x081f9090:Constant:exact *
6a8 NOP # 3 bytes pad for loops and calls
6ab CALL,static wrapper for: _new_instance_Java
# org.jruby.RubyFixnum::newFixnum @ bci:19 L[0]=esp + #80 L[1]=esp + #8 L[2]=_
# org.jruby.Ruby::newFixnum @ bci:3 L[0]=_ L[1]=_
# org.jruby.RubyArray::length @ bci:8 L[0]=_
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:11 L[0]=esp + #16 L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
6b0
6b0 B116: # B126 B117 <- B115 B114 Freq: 0.00975851
6b0
6b0 MOV ECX,EAX
6b2 #checkcastPP of ECX
6b2 MOV EDX,[ESP + #80]
6b6 MOV EBP,[ESP + #8]
MOV EDI,[ESP + #12]
6be MOV [ESP + #0],EBP
MOV [ESP + #4],EDI
6c5 MOV [ESP + #80],ECX
6c9 NOP # 2 bytes pad for loops and calls
6cb CALL,static org.jruby.RubyFixnum::
# org.jruby.RubyFixnum::newFixnum @ bci:25 L[0]=_ L[1]=_ L[2]=_ STK[0]=esp + #80
# org.jruby.Ruby::newFixnum @ bci:3 L[0]=_ L[1]=_
# org.jruby.RubyArray::length @ bci:8 L[0]=_
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:11 L[0]=esp + #16 L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
6d0
6d0 B117: # B26 <- B116 Freq: 0.00975831
# Block is sole successor of call
6d0 MOV ESI,[ESP + #80]
6d4 JMP B26
6d4
6d9 B118: # N1485 <- B30 Freq: 1e-06
6d9 MOV ECX,#-28
6de MOV [ESP + #80],EBX
6e2 NOP # 1 bytes pad for loops and calls
6e3 CALL,static wrapper for: uncommon_trap(reason='range_check' action='make_not_entrant')
# org.jruby.RubyArray::first @ bci:23 L[0]=_ STK[0]=EBP STK[1]=esp + #80
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:46 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
6e8 INT3 ; ShouldNotReachHere
6e8
6ed B119: # N1485 <- B29 Freq: 1e-06
6ed MOV ECX,#-10
6f2 MOV [ESP + #80],EBX
6f6 NOP # 1 bytes pad for loops and calls
6f7 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.RubyArray::first @ bci:23 L[0]=_ STK[0]=EBP STK[1]=esp + #80
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:46 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
6fc INT3 ; ShouldNotReachHere
6fc
701 B120: # B124 B121 <- B28 Freq: 0.00476354
701 MOV ECX,[ESP + #16]
705 NOP # 2 bytes pad for loops and calls
707 CALL,static org.jruby.RubyObject::getRuntime
# org.jruby.RubyArray::first @ bci:8 L[0]=_
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:46 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
#
70c
70c B121: # B123 B122 <- B120 Freq: 0.00476344
# Block is sole successor of call
70c MOV EBX,EAX
70e MOV EAX,[EAX + #108] ! Field org/jruby/Ruby.nilObject
711 NullCheck EAX
711
711 B122: # B35 <- B121 Freq: 0.00476344
711 #checkcastPP of EAX
711 JMP B35
711
716 B123: # N1485 <- B121 Freq: 1e-06
716 MOV ECX,#-10
71b MOV EBP,EBX
71d NOP # 2 bytes pad for loops and calls
71f CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.RubyArray::first @ bci:11 L[0]=_ STK[0]=EBP
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:46 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
724 INT3 ; ShouldNotReachHere
724
729 B124: # B143 <- B120 Freq: 4.76354e-08
729 # exception oop is in EAX; no code emitted
729 MOV ECX,EAX
72b JMP B143
72b
730 B125: # B35 <- B27 Freq: 0.00499494
730 MOV EAX,[ESP + #16]
734 #checkcastPP of EAX
734 JMP B35
734
739 B126: # B143 <- B116 Freq: 9.75851e-08
739 # exception oop is in EAX; no code emitted
739 MOV ECX,EAX
73b JMP B143
73b
740 B127: # B143 <- B115 Freq: 9.76013e-12
740 # exception oop is in EAX; no code emitted
740 MOV ECX,EAX
742 JMP B143
742
747 B128: # N1485 <- B20 Freq: 1e-06
747 MOV EBP,ECX
749 MOV [ESP + #80],ESI
74d MOV ECX,#-10
752 NOP # 1 bytes pad for loops and calls
753 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.RubyArray::length @ bci:8 L[0]=_ STK[0]=EBP STK[1]=esp + #80
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:11 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
758 INT3 ; ShouldNotReachHere
758
75d B129: # N1485 <- B19 Freq: 1e-06
75d MOV ECX,#-10
762 NOP # 1 bytes pad for loops and calls
763 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.RubyObject::getRuntime @ bci:4 L[0]=_ STK[0]=EBP
# org.jruby.RubyArray::length @ bci:1 L[0]=_
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:11 L[0]=_ L[1]=_
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
768 INT3 ; ShouldNotReachHere
768
76d B130: # N1485 <- B33 Freq: 1e-06
76d MOV ECX,#-10
772 MOV EBP,EBX
774 NOP # 3 bytes pad for loops and calls
777 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::aValueSplat @ bci:28 L[0]=_ L[1]=_ STK[0]=EBP
# ruby.__dash_e__::method__0$RUBY$foo @ bci:37 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
77c INT3 ; ShouldNotReachHere
77c
781 B131: # B143 <- B32 Freq: 0.000100046
781 # exception oop is in EAX; no code emitted
781 MOV ECX,EAX
783 JMP,s B143
783
785 B132: # B143 <- B108 Freq: 4.76824e-08
785 # exception oop is in EAX; no code emitted
785 MOV ECX,EAX
787 JMP,s B143
787
789 B133: # N1485 <- B107 Freq: 1e-06
789 MOV ECX,#-10
78e MOV EBP,[ESP + #80]
792 MOV [ESP + #80],EAX
796 NOP # 1 bytes pad for loops and calls
797 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:16 L[0]=_ STK[0]=esp + #80 STK[1]=EBP
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
79c INT3 ; ShouldNotReachHere
79c
7a1 B134: # B143 <- B106 Freq: 4.76834e-08
7a1 # exception oop is in EAX; no code emitted
7a1 MOV ECX,EAX
7a3 JMP,s B143
7a3
7a5 B135: # N1485 <- B14 Freq: 1e-06
7a5 MOV ECX,#-10
7aa MOV EBP,EDI
7ac NOP # 3 bytes pad for loops and calls
7af CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:1 L[0]=_ STK[0]=EBP
# ruby.__dash_e__::method__0$RUBY$foo @ bci:34 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
7b4 INT3 ; ShouldNotReachHere
7b4
7b9 B136: # B143 <- B75 Freq: 4.76825e-08
7b9 # exception oop is in EAX; no code emitted
7b9 MOV ECX,EAX
7bb JMP,s B143
7bb
7bd B137: # N1485 <- B74 Freq: 1e-06
7bd MOV ECX,#-10
7c2 MOV EBP,[ESP + #80]
7c6 MOV [ESP + #80],EAX
7ca NOP # 1 bytes pad for loops and calls
7cb CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.javasupport.util.RuntimeHelpers::splatValue @ bci:16 L[0]=_ STK[0]=esp + #80 STK[1]=EBP
# ruby.__dash_e__::method__0$RUBY$foo @ bci:31 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
7d0 INT3 ; ShouldNotReachHere
7d0
7d5 B138: # B143 <- B73 Freq: 4.76835e-08
7d5 # exception oop is in EAX; no code emitted
7d5 MOV ECX,EAX
7d7 JMP,s B143
7d7
7d9 B139: # B143 <- B42 Freq: 4.76835e-08
7d9 # exception oop is in EAX; no code emitted
7d9 MOV ECX,EAX
7db JMP,s B143
7db
7dd B140: # B143 <- B40 Freq: 4.76835e-08
7dd # exception oop is in EAX; no code emitted
7dd MOV ECX,EAX
7df JMP,s B143
7df
7e1 B141: # B143 <- B38 Freq: 1.00016e-05
7e1 # exception oop is in EAX; no code emitted
7e1 MOV ECX,EAX
7e3 JMP,s B143
7e3
7e5 B142: # B143 <- B36 Freq: 1.00016e-05
7e5 # exception oop is in EAX; no code emitted
7e5 MOV ECX,EAX
7e5
7e7 B143: # N1485 <- B58 B91 B140 B139 B138 B136 B71 B70 B68 B62 B61 B60 B65 B134 B132 B104 B103 B101 B95 B94 B93 B98 B126 B131 B124 B142 B141 B127 Freq: 0.000986874
7e7 ADD ESP,72 # Destroy frame
POPL EBP
7eb JMP rethrow_stub
7eb
7f0 B144: # N1485 <- B4 Freq: 1e-06
7f0 MOV ECX,#-28
7f5 MOV EBP,ESI
7f7 MOV [ESP + #80],EDI
7fb CALL,static wrapper for: uncommon_trap(reason='range_check' action='make_not_entrant')
# org.jruby.RubyFixnum::one @ bci:7 L[0]=_ STK[0]=esp + #80 STK[1]=#129
# ruby.__dash_e__::method__0$RUBY$foo @ bci:22 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_ STK[0]=EBP
# AllocatedObj(0x90f12a20)
AllocatedObj(0x90f12a20)
800 INT3 ; ShouldNotReachHere
800
805 B145: # N1485 <- B3 Freq: 1e-06
805 MOV ECX,#-10
80a MOV EBP,EDI
80c NOP # 3 bytes pad for loops and calls
80f CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# org.jruby.RubyFixnum::one @ bci:7 L[0]=_ STK[0]=EBP STK[1]=#129
# ruby.__dash_e__::method__0$RUBY$foo @ bci:22 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_ STK[0]=_
# AllocatedObj(0x90f12a20)
814 INT3 ; ShouldNotReachHere
814
819 B146: # N1485 <- B2 Freq: 1e-06
819 MOV ECX,#-10
81e MOV EBP,ESI
820 NOP # 3 bytes pad for loops and calls
823 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# ruby.__dash_e__::method__0$RUBY$foo @ bci:7 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_ STK[0]=EBP
# AllocatedObj(0x90f12a20)
828 INT3 ; ShouldNotReachHere
828
82d B147: # N1485 <- B1 Freq: 1e-06
82d MOV ECX,#-10
832 MOV EBP,EDX
834 NOP # 3 bytes pad for loops and calls
837 CALL,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# ruby.__dash_e__::method__0$RUBY$foo @ bci:1 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_ STK[0]=EBP
# AllocatedObj(0x90f12a20)
83c INT3 ; ShouldNotReachHere
83c
|