Skip to content

Instantly share code, notes, and snippets.

@headius
Created April 28, 2011 13:50
Show Gist options
  • Save headius/946382 to your computer and use it in GitHub Desktop.
Save headius/946382 to your computer and use it in GitHub Desktop.
Decoding compiled method 323551368:
Code:
[Disassembling for mach='i386(base-hsdis)']
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'boxedFib' '(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyFixnum;)Lorg/jruby/RubyFixnum;' in 'org/jruby/test/bench/BenchFixnumFibRecursive'
# parm0: ecx = 'org/jruby/runtime/ThreadContext'
# parm1: edx = 'org/jruby/RubyFixnum'
# [sp+0x40] (sp of caller)
323552928: mov [esp-0x3000], eax
323552935: push ebp
323552936: sub esp, 56 ;*synchronization entry
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@-1 (line 49)
323552942: mov ebp, ecx
323552944: mov [esp+0xC], edx
323552948: mov esi, edx
323552950: mov eax, [esi+0x18] ; implicit exception: dispatches to 323563157
323552953: mov edx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_lt@5 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
323552956: mov ebx, ecx
323552958: mov ecx, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_lt@1 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; implicit exception: dispatches to 323563173
323552961: mov ebp, 2
323552966: xor edi, edi
323552968: cmp eax, ebp
323552970: mov esi, edx
323552972: sbb esi, edi
323552974: jge 323558003 ;*ifge
; - org.jruby.RubyFixnum::op_lt@10 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
323552980: mov ebp, [ecx+0x8C] ;*areturn
; - org.jruby.RubyFixnum::op_lt@21 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; implicit exception: dispatches to 323563205
323552986: mov edi, [ebp+0x4] ; implicit exception: dispatches to 323563189
323552989: cmp edi, 'org/jruby/RubyBoolean'
; {oop('org/jruby/RubyBoolean')}
323552995: jnz 323561036 ;*invokeinterface isTrue
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@8 (line 49)
323553001: mov ebp, [ebp+0x8]
323553004: test ebp, 1
323553010: jz 323555667 ;*ifeq
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@13 (line 49)
323553016: mov [esp+0x8], ecx
323553020: mov [esp+0x10], ebx
323553024: mov ecx, eax
323553026: mov ebx, edx
323553028: xor ecx, 2
323553031: xor ebx, 0x00
323553034: mov ebp, eax
323553036: mov edi, edx
323553038: add ebp, 254
323553041: adc edi, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553044: mov [esp+0x18], ebp
323553048: mov [esp+0x1C], edi
323553052: xor ebp, eax
323553054: xor edi, edx
323553056: and ecx, ebp
323553058: and ebx, edi
323553060: and ecx, 0x00
323553063: and ebx, -2147483648
323553069: mov ebp, esp
323553071: shr ebp, 12
323553074: mov ebp, [ebp*4+0x12CE5FF0]
; {external_word}
323553081: mov [esp+0x14], ebp
323553085: mov ebp, ecx
323553087: or ebp, ebx
323553089: jnz 323561349 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553095: mov ecx, [esp+0x18]
323553099: mov ebx, [esp+0x1C]
323553103: mov ebp, 255
323553108: xor edi, edi
323553110: cmp ebp, ecx
323553112: mov eax, edi
323553114: sbb eax, ebx
323553116: jl 323558014 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553122: mov ebp, -256
323553127: mov edi, -1
323553132: cmp ecx, ebp
323553134: mov edx, ebx
323553136: sbb edx, edi
323553138: jl 323558014 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553144: mov ecx, [esp+0x8]
323553148: mov ebx, [ecx+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; implicit exception: dispatches to 323563333
323553154: mov [esp+0x20], ebx
323553158: mov ecx, [esp+0x18]
323553162: mov ebx, [esp+0x1C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553166: mov ebp, ecx
323553168: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553174: mov edi, [esp+0x20]
323553178: mov ebx, [edi+0x8] ; implicit exception: dispatches to 323563349
323553181: cmp ebp, ebx
323553183: jnc 323561057
323553189: mov ebx, edi
323553191: mov ecx, [ebx+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553198: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
323553202: mov ecx, [esp+0x18]
323553206: mov ecx, [ecx+0x4] ; implicit exception: dispatches to 323563237
323553209: cmp ecx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323553215: jnz 323562665
323553221: mov ebx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@27 (line 52)
323553225: mov [esp+0x1C], ebx
323553229: mov ecx, [esp+0x10]
323553233: mov ebx, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553236: mov [esp+0x8], ebx
323553240: mov esi, [esp+0x1C]
323553244: mov ecx, [esi+0x18]
323553247: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_lt@5 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553250: mov ebp, 2
323553255: xor edi, edi
323553257: cmp ecx, ebp
323553259: mov eax, ebx
323553261: sbb eax, edi
323553263: jl 323555652 ;*ifge
; - org.jruby.RubyFixnum::op_lt@10 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553269: mov edi, [esp+0x8]
323553273: mov ebp, [edi+0x90] ;*areturn
; - org.jruby.RubyFixnum::op_lt@21 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563429
323553279: mov eax, [ebp+0x4] ; implicit exception: dispatches to 323563265
323553282: cmp eax, 'org/jruby/RubyBoolean'
; {oop('org/jruby/RubyBoolean')}
323553288: jnz 323561117 ;*invokeinterface isTrue
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@8 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553294: mov eax, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323553299: mov edi, [eax+0x68] ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553302: mov [esp+0x18], edi
323553306: mov edi, [ebp+0x8]
323553309: test edi, 1
323553315: jz 323555402 ;*ifeq
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@13 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553321: mov eax, ecx
323553323: mov edx, ebx
323553325: xor eax, 2
323553328: xor edx, 0x00
323553331: mov ebp, ecx
323553333: mov edi, ebx
323553335: add ebp, 254
323553338: adc edi, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553341: mov [esp+0x20], ebp
323553345: mov [esp+0x24], edi
323553349: xor ebp, ecx
323553351: xor edi, ebx
323553353: and eax, ebp
323553355: and edx, edi
323553357: and eax, 0x00
323553360: and edx, -2147483648
323553366: mov ecx, eax
323553368: or ecx, edx
323553370: jnz 323561689 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553376: mov ecx, [esp+0x20]
323553380: mov ebx, [esp+0x24]
323553384: mov ebp, 255
323553389: xor edi, edi
323553391: cmp ebp, ecx
323553393: mov eax, edi
323553395: sbb eax, ebx
323553397: jl 323558441 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553403: mov ebp, -256
323553408: mov edi, -1
323553413: cmp ecx, ebp
323553415: mov eax, ebx
323553417: sbb eax, edi
323553419: jl 323558441 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553425: mov ecx, [esp+0x8]
323553429: mov ecx, [ecx+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563693
323553435: mov [esp+0x18], ecx
323553439: mov ecx, [esp+0x20]
323553443: mov ebx, [esp+0x24] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553447: mov ebp, ecx
323553449: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553455: mov edi, [esp+0x18]
323553459: mov ebx, [edi+0x8] ; implicit exception: dispatches to 323563709
323553462: cmp ebp, ebx
323553464: jnc 323561157
323553470: mov ecx, [edi+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553477: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553481: mov ebx, [esp+0x18]
323553485: mov ebx, [ebx+0x4] ; implicit exception: dispatches to 323563461
323553488: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323553494: jnz 323562693
323553500: mov ecx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@27 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553504: mov [esp+0x20], ecx
323553508: mov ebx, [esp+0x10]
323553512: mov ecx, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553515: mov [esp+0x8], ecx
323553519: mov esi, [esp+0x20]
323553523: mov ecx, [esi+0x18]
323553526: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_lt@5 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553529: mov ebp, 2
323553534: xor edi, edi
323553536: cmp ecx, ebp
323553538: mov edx, ebx
323553540: sbb edx, edi
323553542: jl 323554484 ;*ifge
; - org.jruby.RubyFixnum::op_lt@10 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553548: mov ebp, [esp+0x8]
323553552: mov ebp, [ebp+0x90] ;*areturn
; - org.jruby.RubyFixnum::op_lt@21 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563885
323553558: mov edi, [ebp+0x4] ; implicit exception: dispatches to 323563489
323553561: cmp edi, 'org/jruby/RubyBoolean'
; {oop('org/jruby/RubyBoolean')}
323553567: jnz 323561269 ;*invokeinterface isTrue
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@8 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553573: mov edi, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323553578: mov eax, [edi+0x68] ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553581: mov [esp+0x18], eax
323553585: mov ebp, [ebp+0x8]
323553588: test ebp, 1
323553594: jz 323554236 ;*ifeq
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@13 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553600: mov eax, ecx
323553602: mov edx, ebx
323553604: xor eax, 2
323553607: xor edx, 0x00
323553610: mov ebp, ecx
323553612: mov edi, ebx
323553614: add ebp, 254
323553617: adc edi, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553620: mov [esp+0x28], ebp
323553624: mov [esp+0x2C], edi
323553628: xor ebp, ecx
323553630: xor edi, ebx
323553632: and eax, ebp
323553634: and edx, edi
323553636: and eax, 0x00
323553639: and edx, -2147483648
323553645: mov ebx, eax
323553647: or ebx, edx
323553649: jnz 323561897 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553655: mov ecx, [esp+0x28]
323553659: mov ebx, [esp+0x2C]
323553663: mov ebp, 255
323553668: xor edi, edi
323553670: cmp ebp, ecx
323553672: mov edx, edi
323553674: sbb edx, ebx
323553676: jl 323559281 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553682: mov ebp, -256
323553687: mov edi, -1
323553692: cmp ecx, ebp
323553694: mov edx, ebx
323553696: sbb edx, edi
323553698: jl 323559281 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553704: mov ebx, [esp+0x8]
323553708: mov ecx, [ebx+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323564477
323553714: mov [esp+0x24], ecx
323553718: mov ecx, [esp+0x28]
323553722: mov ebx, [esp+0x2C]
323553726: mov ebx, ecx ;*l2i ; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553728: mov ebp, ebx
323553730: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553736: mov ecx, [esp+0x24]
323553740: mov edi, [ecx+0x8] ; implicit exception: dispatches to 323564493
323553743: cmp ebp, edi
323553745: jnc 323561449
323553751: mov ecx, [ecx+ebx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553758: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553762: mov ebx, [esp+0x18]
323553766: mov ebx, [ebx+0x4] ; implicit exception: dispatches to 323563917
323553769: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323553775: jnz 323562721
323553781: mov edx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@27 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553785: mov ecx, [esp+0x10]
323553789: nop
323553791: call 323093856 ; OopMap{[12]=Oop [16]=Oop [28]=Oop [32]=Oop off=868}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; {static_call}
323553796: mov [esp+0x24], eax
323553800: mov esi, [esp+0x20]
323553804: mov ebp, [esi+0x18]
323553807: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_minus@1 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553810: mov eax, ebp
323553812: mov edx, edi
323553814: xor eax, 1
323553817: xor edx, 0x00
323553820: mov ecx, ebp
323553822: mov ebx, edi
323553824: add ecx, 255
323553827: adc ebx, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553830: mov [esp+0x28], ecx
323553834: mov [esp+0x2C], ebx
323553838: xor ecx, ebp
323553840: xor ebx, edi
323553842: and eax, ecx
323553844: and edx, ebx
323553846: and eax, 0x00
323553849: and edx, -2147483648
323553855: mov ecx, eax
323553857: or ecx, edx
323553859: jnz 323561933 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553865: mov ebx, [esp+0x10]
323553869: mov ebp, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553872: mov ecx, [esp+0x28]
323553876: mov ebx, [esp+0x2C]
323553880: mov eax, 255
323553885: xor edx, edx
323553887: cmp eax, ecx
323553889: mov edi, edx
323553891: sbb edi, ebx
323553893: jl 323559421 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553899: mov eax, -256
323553904: mov edx, -1
323553909: cmp ecx, eax
323553911: mov edi, ebx
323553913: sbb edi, edx
323553915: jl 323559421 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553921: mov ecx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323564509
323553927: mov [esp+0x20], ecx
323553931: mov ecx, [esp+0x28]
323553935: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553939: mov ebp, ecx
323553941: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553947: mov ebx, [esp+0x20]
323553951: mov ebx, [ebx+0x8] ; implicit exception: dispatches to 323564525
323553954: cmp ebp, ebx
323553956: jnc 323561465
323553962: mov ebp, [esp+0x20]
323553966: mov ecx, [ebp+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553973: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323553977: mov ecx, [esp+0x18]
323553981: mov ebx, [ecx+0x4] ; implicit exception: dispatches to 323563945
323553984: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323553990: jnz 323562749
323553996: mov edx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@41 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554000: mov ecx, [esp+0x10]
323554004: nop
323554007: call 323093856 ; OopMap{[12]=Oop [16]=Oop [28]=Oop [36]=Oop off=1084}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; {static_call}
323554012: mov [esp+0x8], eax
323554016: mov esi, [esp+0x24]
323554020: mov ebp, [esi+0x18] ; implicit exception: dispatches to 323564085
323554023: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@6 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554026: mov esi, eax
323554028: mov ecx, [esi+0x18] ; implicit exception: dispatches to 323564105
323554031: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@1 (line 345)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554034: mov eax, ecx
323554036: mov edx, ebx
323554038: xor eax, ebp
323554040: xor edx, edi
323554042: add ecx, ebp
323554044: adc ebx, edi ;*ladd
; - org.jruby.RubyFixnum::addFixnum@10 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554046: mov [esp+0x28], ecx
323554050: mov [esp+0x2C], ebx
323554054: xor ecx, ebp
323554056: xor ebx, edi
323554058: not eax
323554060: not edx
323554062: and eax, ecx
323554064: and edx, ebx
323554066: and eax, 0x00
323554069: and edx, -2147483648
323554075: mov ecx, eax
323554077: or ecx, edx
323554079: jnz 323562041 ;*ifeq
; - org.jruby.RubyFixnum::additionOverflowed@18 (line 354)
; - org.jruby.RubyFixnum::addFixnum@20 (line 347)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554085: mov ebx, [esp+0x10]
323554089: mov ebp, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::addFixnum@34 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554092: mov ecx, [esp+0x28]
323554096: mov ebx, [esp+0x2C]
323554100: mov eax, 255
323554105: xor edx, edx
323554107: cmp eax, ecx
323554109: mov edi, edx
323554111: sbb edi, ebx
323554113: jl 323559849 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554119: mov eax, -256
323554124: mov edx, -1
323554129: cmp ecx, eax
323554131: mov edi, ebx
323554133: sbb edi, edx
323554135: jl 323559849 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554141: mov ecx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323564605
323554147: mov [esp+0x18], ecx
323554151: mov ecx, [esp+0x28]
323554155: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554159: mov ebp, ecx
323554161: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554167: mov ebx, [esp+0x18]
323554171: mov ebx, [ebx+0x8] ; implicit exception: dispatches to 323564621
323554174: cmp ebp, ebx
323554176: jnc 323561521
323554182: mov ebp, [esp+0x18]
323554186: mov ecx, [ebp+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::addFixnum@42 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554193: mov [esp+0x18], ecx ;*invokespecial addFixnum
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554197: mov ecx, [esp+0x18]
323554201: mov ebx, [ecx+0x4] ; implicit exception: dispatches to 323564133
323554204: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323554210: jnz 323562777
323554216: mov ebx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@50 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554220: mov ecx, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323554225: mov ecx, [ecx+0x68]
323554228: mov [esp+0x18], ecx
323554232: mov [esp+0x20], ebx ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554236: mov esi, [esp+0x1C]
323554240: mov ebp, [esi+0x18]
323554243: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_minus@1 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554246: mov eax, ebp
323554248: mov edx, edi
323554250: xor eax, 1
323554253: xor edx, 0x00
323554256: mov ecx, ebp
323554258: mov ebx, edi
323554260: add ecx, 255
323554263: adc ebx, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554266: mov [esp+0x28], ecx
323554270: mov [esp+0x2C], ebx
323554274: xor ecx, ebp
323554276: xor ebx, edi
323554278: and eax, ecx
323554280: and edx, ebx
323554282: and eax, 0x00
323554285: and edx, -2147483648
323554291: mov ecx, eax
323554293: or ecx, edx
323554295: jnz 323561725 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554301: mov ecx, [esp+0x10]
323554305: mov ebp, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554308: mov ecx, [esp+0x28]
323554312: mov ebx, [esp+0x2C]
323554316: mov eax, 255
323554321: xor edx, edx
323554323: cmp eax, ecx
323554325: mov edi, edx
323554327: sbb edi, ebx
323554329: jl 323558585 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554335: mov eax, -256
323554340: mov edx, -1
323554345: cmp ecx, eax
323554347: mov edi, ebx
323554349: sbb edi, edx
323554351: jl 323558585 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554357: mov ebx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563725
323554363: mov [esp+0x18], ebx
323554367: mov ecx, [esp+0x28]
323554371: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554375: mov ebp, ecx
323554377: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554383: mov edi, [esp+0x18]
323554387: mov ebx, [edi+0x8] ; implicit exception: dispatches to 323563741
323554390: cmp ebp, ebx
323554392: jnc 323561173
323554398: mov ebx, edi
323554400: mov ecx, [ebx+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554407: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554411: mov ebx, [esp+0x18]
323554415: mov ebx, [ebx+0x4] ; implicit exception: dispatches to 323563505
323554418: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323554424: jnz 323562805
323554430: mov ecx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@41 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554434: mov [esp+0x1C], ecx
323554438: mov ebx, [esp+0x10]
323554442: mov ebx, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_lt@1 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554445: mov [esp+0x8], ebx
323554449: mov esi, ecx
323554451: mov ecx, [esi+0x18]
323554454: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_lt@5 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554457: mov ebp, 2
323554462: xor edi, edi
323554464: cmp ecx, ebp
323554466: mov edx, ebx
323554468: sbb edx, edi
323554470: jge 323554499 ;*ifge
; - org.jruby.RubyFixnum::op_lt@10 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554472: mov edi, [esp+0x8]
323554476: mov ebp, [edi+0x8C] ;*getfield trueObject
; - org.jruby.Ruby::getTrue@1 (line 1744)
; - org.jruby.RubyBoolean::newBoolean@5 (line 104)
; - org.jruby.RubyFixnum::op_lt@18 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563989
323554482: jmp 323554509
323554484: mov edi, [esp+0x8]
323554488: mov ebp, [edi+0x8C] ;*getfield trueObject
; - org.jruby.Ruby::getTrue@1 (line 1744)
; - org.jruby.RubyBoolean::newBoolean@5 (line 104)
; - org.jruby.RubyFixnum::op_lt@18 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563901
323554494: jmp 323553558
323554499: mov ebp, [esp+0x8]
323554503: mov ebp, [ebp+0x90] ;*areturn
; - org.jruby.RubyFixnum::op_lt@21 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563973
323554509: mov eax, [ebp+0x4] ; implicit exception: dispatches to 323563533
323554512: cmp eax, 'org/jruby/RubyBoolean'
; {oop('org/jruby/RubyBoolean')}
323554518: jnz 323561285 ;*invokeinterface isTrue
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@8 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554524: mov edi, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323554529: mov edi, [edi+0x68] ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554532: mov [esp+0x18], edi
323554536: mov edi, [ebp+0x8]
323554539: test edi, 1
323554545: jz 323555190 ;*ifeq
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@13 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554551: mov eax, ecx
323554553: mov edx, ebx
323554555: xor eax, 2
323554558: xor edx, 0x00
323554561: mov ebp, ecx
323554563: mov edi, ebx
323554565: add ebp, 254
323554568: adc edi, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554571: mov [esp+0x28], ebp
323554575: mov [esp+0x2C], edi
323554579: xor ebp, ecx
323554581: xor edi, ebx
323554583: and eax, ebp
323554585: and edx, edi
323554587: and eax, 0x00
323554590: and edx, -2147483648
323554596: mov ecx, eax
323554598: or ecx, edx
323554600: jnz 323561969 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554606: mov ecx, [esp+0x28]
323554610: mov ebx, [esp+0x2C]
323554614: mov ebp, 255
323554619: xor edi, edi
323554621: cmp ebp, ecx
323554623: mov eax, edi
323554625: sbb eax, ebx
323554627: jl 323559563 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554633: mov ebp, -256
323554638: mov edi, -1
323554643: cmp ecx, ebp
323554645: mov eax, ebx
323554647: sbb eax, edi
323554649: jl 323559563 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554655: mov ebx, [esp+0x8]
323554659: mov ebx, [ebx+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323564541
323554665: mov [esp+0x24], ebx
323554669: mov ecx, [esp+0x28]
323554673: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554677: mov ebp, ecx
323554679: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554685: mov ebx, [esp+0x24]
323554689: mov ebx, [ebx+0x8] ; implicit exception: dispatches to 323564557
323554692: cmp ebp, ebx
323554694: jnc 323561481
323554700: mov ebp, [esp+0x24]
323554704: mov ecx, [ebp+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554711: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554715: mov ebx, [esp+0x18]
323554719: mov ecx, [ebx+0x4] ; implicit exception: dispatches to 323564005
323554722: cmp ecx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323554728: jnz 323562833
323554734: mov edx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@27 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554738: mov ecx, [esp+0x10]
323554742: nop
323554743: call 323093856 ; OopMap{[12]=Oop [16]=Oop [28]=Oop [32]=Oop off=1820}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; {static_call}
323554748: mov [esp+0x24], eax
323554752: mov esi, [esp+0x1C]
323554756: mov ebp, [esi+0x18]
323554759: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_minus@1 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554762: mov eax, ebp
323554764: mov edx, edi
323554766: xor eax, 1
323554769: xor edx, 0x00
323554772: mov ecx, ebp
323554774: mov ebx, edi
323554776: add ecx, 255
323554779: adc ebx, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554782: mov [esp+0x28], ecx
323554786: mov [esp+0x2C], ebx
323554790: xor ecx, ebp
323554792: xor ebx, edi
323554794: and eax, ecx
323554796: and edx, ebx
323554798: and eax, 0x00
323554801: and edx, -2147483648
323554807: mov ebx, eax
323554809: or ebx, edx
323554811: jnz 323562069 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554817: mov ebx, [esp+0x10]
323554821: mov ebp, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554824: mov ecx, [esp+0x28]
323554828: mov ebx, [esp+0x2C]
323554832: mov eax, 255
323554837: xor edx, edx
323554839: cmp eax, ecx
323554841: mov esi, edx
323554843: sbb esi, ebx
323554845: jl 323560008 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554851: mov eax, -256
323554856: mov edx, -1
323554861: cmp ecx, eax
323554863: mov esi, ebx
323554865: sbb esi, edx
323554867: jl 323560008 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554873: mov ebx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323564637
323554879: mov [esp+0x1C], ebx
323554883: mov ecx, [esp+0x28]
323554887: mov ebx, [esp+0x2C]
323554891: mov ebx, ecx ;*l2i ; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554893: mov ebp, ebx
323554895: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554901: mov ecx, [esp+0x1C]
323554905: mov edi, [ecx+0x8] ; implicit exception: dispatches to 323564653
323554908: cmp ebp, edi
323554910: jnc 323561537
323554916: mov ecx, [ecx+ebx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554923: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554927: mov ecx, [esp+0x18]
323554931: mov ecx, [ecx+0x4] ; implicit exception: dispatches to 323564161
323554934: cmp ecx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323554940: jnz 323562861
323554946: mov edx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@41 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554950: mov ecx, [esp+0x10]
323554954: nop
323554955: call 323093856 ; OopMap{[12]=Oop [16]=Oop [32]=Oop [36]=Oop off=2032}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; {static_call}
323554960: mov [esp+0x8], eax
323554964: mov esi, [esp+0x24]
323554968: mov ebp, [esi+0x18] ; implicit exception: dispatches to 323564261
323554971: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@6 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554974: mov esi, eax
323554976: mov ecx, [esi+0x18] ; implicit exception: dispatches to 323564281
323554979: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@1 (line 345)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554982: mov eax, ecx
323554984: mov edx, ebx
323554986: xor eax, ebp
323554988: xor edx, edi
323554990: add ecx, ebp
323554992: adc ebx, edi ;*ladd
; - org.jruby.RubyFixnum::addFixnum@10 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323554994: mov [esp+0x18], ecx
323554998: mov [esp+0x1C], ebx
323555002: xor ecx, ebp
323555004: xor ebx, edi
323555006: not eax
323555008: not edx
323555010: and eax, ecx
323555012: and edx, ebx
323555014: and eax, 0x00
323555017: and edx, -2147483648
323555023: mov ebx, eax
323555025: or ebx, edx
323555027: jnz 323562177 ;*ifeq
; - org.jruby.RubyFixnum::additionOverflowed@18 (line 354)
; - org.jruby.RubyFixnum::addFixnum@20 (line 347)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555033: mov ebx, [esp+0x10]
323555037: mov ebp, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::addFixnum@34 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555040: mov ecx, [esp+0x18]
323555044: mov ebx, [esp+0x1C]
323555048: mov eax, 255
323555053: xor edx, edx
323555055: cmp eax, ecx
323555057: mov esi, edx
323555059: sbb esi, ebx
323555061: jl 323560424 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555067: mov eax, -256
323555072: mov edx, -1
323555077: cmp ecx, eax
323555079: mov esi, ebx
323555081: sbb esi, edx
323555083: jl 323560424 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555089: mov ebx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323564733
323555095: mov [esp+0x24], ebx
323555099: mov ecx, [esp+0x18]
323555103: mov ebx, [esp+0x1C]
323555107: mov ebx, ecx ;*l2i ; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555109: mov ebp, ebx
323555111: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555117: mov ecx, [esp+0x24]
323555121: mov edi, [ecx+0x8] ; implicit exception: dispatches to 323564749
323555124: cmp ebp, edi
323555126: jnc 323561601
323555132: mov ecx, [ecx+ebx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::addFixnum@42 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555139: mov [esp+0x18], ecx ;*invokespecial addFixnum
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555143: mov ecx, [esp+0x18]
323555147: mov ebx, [ecx+0x4] ; implicit exception: dispatches to 323564309
323555150: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323555156: jnz 323562889
323555162: mov ebx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@50 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555166: mov [esp+0x1C], ebx
323555170: mov ecx, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323555175: mov ecx, [ecx+0x68]
323555178: mov [esp+0x18], ecx
323555182: mov esi, ebx
323555184: mov ecx, [esi+0x18]
323555187: mov ebx, [esi+0x1C] ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555190: mov esi, [esp+0x20]
323555194: mov ebp, [esi+0x18]
323555197: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@6 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555200: mov eax, ecx
323555202: mov edx, ebx
323555204: xor eax, ebp
323555206: xor edx, edi
323555208: add ecx, ebp
323555210: adc ebx, edi ;*ladd
; - org.jruby.RubyFixnum::addFixnum@10 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555212: mov [esp+0x28], ecx
323555216: mov [esp+0x2C], ebx
323555220: xor ecx, ebp
323555222: xor ebx, edi
323555224: not eax
323555226: not edx
323555228: and eax, ecx
323555230: and edx, ebx
323555232: and eax, 0x00
323555235: and edx, -2147483648
323555241: mov ecx, eax
323555243: or ecx, edx
323555245: jnz 323561797 ;*ifeq
; - org.jruby.RubyFixnum::additionOverflowed@18 (line 354)
; - org.jruby.RubyFixnum::addFixnum@20 (line 347)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555251: mov ebx, [esp+0x10]
323555255: mov ebp, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::addFixnum@34 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555258: mov ecx, [esp+0x28]
323555262: mov ebx, [esp+0x2C]
323555266: mov eax, 255
323555271: xor edx, edx
323555273: cmp eax, ecx
323555275: mov edi, edx
323555277: sbb edi, ebx
323555279: jl 323558869 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555285: mov eax, -256
323555290: mov edx, -1
323555295: cmp ecx, eax
323555297: mov edi, ebx
323555299: sbb edi, edx
323555301: jl 323558869 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555307: mov ebx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563789
323555313: mov [esp+0x18], ebx
323555317: mov ecx, [esp+0x28]
323555321: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555325: mov ebp, ecx
323555327: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555333: mov ebx, [esp+0x18]
323555337: mov ebx, [ebx+0x8] ; implicit exception: dispatches to 323563805
323555340: cmp ebp, ebx
323555342: jnc 323561213
323555348: mov ebp, [esp+0x18]
323555352: mov ecx, [ebp+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::addFixnum@42 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555359: mov [esp+0x18], ecx ;*invokespecial addFixnum
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555363: mov ebx, [esp+0x18]
323555367: mov ebx, [ebx+0x4] ; implicit exception: dispatches to 323563617
323555370: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323555376: jnz 323562917
323555382: mov ecx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@50 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
323555386: mov ebp, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323555391: mov ebp, [ebp+0x68]
323555394: mov [esp+0x18], ebp
323555398: mov [esp+0x1C], ecx ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555402: mov esi, [esp+0xC]
323555406: mov ebp, [esi+0x18]
323555409: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_minus@1 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555412: mov eax, ebp
323555414: mov edx, edi
323555416: xor eax, 1
323555419: xor edx, 0x00
323555422: mov ecx, ebp
323555424: mov ebx, edi
323555426: add ecx, 255
323555429: adc ebx, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555432: mov [esp+0x20], ecx
323555436: mov [esp+0x24], ebx
323555440: xor ecx, ebp
323555442: xor ebx, edi
323555444: and eax, ecx
323555446: and edx, ebx
323555448: and eax, 0x00
323555451: and edx, -2147483648
323555457: mov ecx, eax
323555459: or ecx, edx
323555461: jnz 323561385 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555467: mov ebx, [esp+0x10]
323555471: mov ebp, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555474: mov ecx, [esp+0x20]
323555478: mov ebx, [esp+0x24]
323555482: mov eax, 255
323555487: xor edx, edx
323555489: cmp eax, ecx
323555491: mov edi, edx
323555493: sbb edi, ebx
323555495: jl 323558159 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555501: mov eax, -256
323555506: mov edx, -1
323555511: cmp ecx, eax
323555513: mov edi, ebx
323555515: sbb edi, edx
323555517: jl 323558159 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555523: mov ebx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; implicit exception: dispatches to 323563365
323555529: mov [esp+0x18], ebx
323555533: mov ecx, [esp+0x20]
323555537: mov ebx, [esp+0x24] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555541: mov ebp, ecx
323555543: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555549: mov ebx, [esp+0x18]
323555553: mov ebx, [ebx+0x8] ; implicit exception: dispatches to 323563381
323555556: cmp ebp, ebx
323555558: jnc 323561073
323555564: mov ebp, [esp+0x18]
323555568: mov ecx, [ebp+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555575: mov [esp+0xC], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
323555579: mov ebx, [esp+0xC]
323555583: mov ebx, [ebx+0x4] ; implicit exception: dispatches to 323563281
323555586: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323555592: jnz 323562937
323555598: mov ecx, [esp+0xC] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@41 (line 52)
323555602: mov [esp+0x18], ecx
323555606: mov ebx, [esp+0x10]
323555610: mov ebx, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_lt@1 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555613: mov [esp+0x8], ebx
323555617: mov esi, ecx
323555619: mov ecx, [esi+0x18]
323555622: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_lt@5 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555625: mov ebp, 2
323555630: xor edi, edi
323555632: cmp ecx, ebp
323555634: mov edx, ebx
323555636: sbb edx, edi
323555638: jge 323555676 ;*ifge
; - org.jruby.RubyFixnum::op_lt@10 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555640: mov edi, [esp+0x8]
323555644: mov ebp, [edi+0x8C] ;*getfield trueObject
; - org.jruby.Ruby::getTrue@1 (line 1744)
; - org.jruby.RubyBoolean::newBoolean@5 (line 104)
; - org.jruby.RubyFixnum::op_lt@18 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323563565
323555650: jmp 323555686
323555652: mov ebp, [esp+0x8]
323555656: mov ebp, [ebp+0x8C] ;*getfield trueObject
; - org.jruby.Ruby::getTrue@1 (line 1744)
; - org.jruby.RubyBoolean::newBoolean@5 (line 104)
; - org.jruby.RubyFixnum::op_lt@18 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; implicit exception: dispatches to 323563445
323555662: jmp 323553279
323555667: mov eax, [esp+0xC]
323555671: jmp 323557992
323555676: mov ebp, [esp+0x8]
323555680: mov ebp, [ebp+0x90] ;*areturn
; - org.jruby.RubyFixnum::op_lt@21 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323563549
323555686: mov eax, [ebp+0x4] ; implicit exception: dispatches to 323563301
323555689: cmp eax, 'org/jruby/RubyBoolean'
; {oop('org/jruby/RubyBoolean')}
323555695: jnz 323561133 ;*invokeinterface isTrue
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@8 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555701: mov edi, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323555706: mov edi, [edi+0x68] ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555709: mov [esp+0x28], edi
323555713: mov edi, [ebp+0x8]
323555716: test edi, 1
323555722: jz 323557828 ;*ifeq
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@13 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555728: mov eax, ecx
323555730: mov edx, ebx
323555732: xor eax, 2
323555735: xor edx, 0x00
323555738: mov ebp, ecx
323555740: mov edi, ebx
323555742: add ebp, 254
323555745: adc edi, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555748: mov [esp+0x20], ebp
323555752: mov [esp+0x24], edi
323555756: xor ebp, ecx
323555758: xor edi, ebx
323555760: and eax, ebp
323555762: and edx, edi
323555764: and eax, 0x00
323555767: and edx, -2147483648
323555773: mov ecx, eax
323555775: or ecx, edx
323555777: jnz 323561761 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555783: mov ecx, [esp+0x20]
323555787: mov ebx, [esp+0x24]
323555791: mov ebp, 255
323555796: xor edi, edi
323555798: cmp ebp, ecx
323555800: mov eax, edi
323555802: sbb eax, ebx
323555804: jl 323558727 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555810: mov ebp, -256
323555815: mov edi, -1
323555820: cmp ecx, ebp
323555822: mov eax, ebx
323555824: sbb eax, edi
323555826: jl 323558727 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555832: mov ebx, [esp+0x8]
323555836: mov ecx, [ebx+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323563757
323555842: mov [esp+0x28], ecx
323555846: mov ecx, [esp+0x20]
323555850: mov ebx, [esp+0x24] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555854: mov ebp, ecx
323555856: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555862: mov ebx, [esp+0x28]
323555866: mov ebx, [ebx+0x8] ; implicit exception: dispatches to 323563773
323555869: cmp ebp, ebx
323555871: jnc 323561189
323555877: mov ebp, [esp+0x28]
323555881: mov ecx, [ebp+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555888: mov [esp+0x20], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555892: mov ecx, [esp+0x20]
323555896: mov ebx, [ecx+0x4] ; implicit exception: dispatches to 323563581
323555899: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323555905: jnz 323562957
323555911: mov ebx, [esp+0x20] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@27 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555915: mov [esp+0x20], ebx
323555919: mov ecx, [esp+0x10]
323555923: mov ecx, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555926: mov [esp+0x8], ecx
323555930: mov esi, ebx
323555932: mov ecx, [esi+0x18]
323555935: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_lt@5 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555938: mov ebp, 2
323555943: xor edi, edi
323555945: cmp ecx, ebp
323555947: mov edx, ebx
323555949: sbb edx, edi
323555951: jl 323556892 ;*ifge
; - org.jruby.RubyFixnum::op_lt@10 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555957: mov edi, [esp+0x8]
323555961: mov ebp, [edi+0x90] ;*areturn
; - org.jruby.RubyFixnum::op_lt@21 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564033
323555967: mov edi, [ebp+0x4] ; implicit exception: dispatches to 323563601
323555970: cmp edi, 'org/jruby/RubyBoolean'
; {oop('org/jruby/RubyBoolean')}
323555976: jnz 323561301 ;*invokeinterface isTrue
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@8 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555982: mov eax, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323555987: mov eax, [eax+0x68] ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323555990: mov [esp+0xC], eax
323555994: mov ebp, [ebp+0x8]
323555997: test ebp, 1
323556003: jz 323556640 ;*ifeq
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@13 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556009: mov eax, ecx
323556011: mov edx, ebx
323556013: xor eax, 2
323556016: xor edx, 0x00
323556019: mov ebp, ecx
323556021: mov edi, ebx
323556023: add ebp, 254
323556026: adc edi, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556029: mov [esp+0x28], ebp
323556033: mov [esp+0x2C], edi
323556037: xor ebp, ecx
323556039: xor edi, ebx
323556041: and eax, ebp
323556043: and edx, edi
323556045: and eax, 0x00
323556048: and edx, -2147483648
323556054: mov ebx, eax
323556056: or ebx, edx
323556058: jnz 323562005 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556064: mov ecx, [esp+0x28]
323556068: mov ebx, [esp+0x2C]
323556072: mov ebp, 255
323556077: xor edi, edi
323556079: cmp ebp, ecx
323556081: mov edx, edi
323556083: sbb edx, ebx
323556085: jl 323559707 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556091: mov ebp, -256
323556096: mov edi, -1
323556101: cmp ecx, ebp
323556103: mov edx, ebx
323556105: sbb edx, edi
323556107: jl 323559707 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556113: mov ecx, [esp+0x8]
323556117: mov ecx, [ecx+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564573
323556123: mov [esp+0x24], ecx
323556127: mov ecx, [esp+0x28]
323556131: mov ebx, [esp+0x2C]
323556135: mov ebx, ecx ;*l2i ; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556137: mov ebp, ebx
323556139: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556145: mov edi, [esp+0x24]
323556149: mov edi, [edi+0x8] ; implicit exception: dispatches to 323564589
323556152: cmp ebp, edi
323556154: jnc 323561497
323556160: mov ecx, [esp+0x24]
323556164: mov ebx, [ecx+ebx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556171: mov [esp+0x24], ebx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556175: mov ecx, [esp+0x24]
323556179: mov ebx, [ecx+0x4] ; implicit exception: dispatches to 323564065
323556182: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323556188: jnz 323562977
323556194: mov edx, [esp+0x24] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@27 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556198: mov ecx, [esp+0x10]
323556202: nop
323556203: call 323093856 ; OopMap{[16]=Oop [24]=Oop [28]=Oop [32]=Oop off=3280}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; {static_call}
323556208: mov [esp+0x24], eax
323556212: mov esi, [esp+0x20]
323556216: mov ebp, [esi+0x18]
323556219: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_minus@1 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556222: mov eax, ebp
323556224: mov edx, edi
323556226: xor eax, 1
323556229: xor edx, 0x00
323556232: mov ecx, ebp
323556234: mov ebx, edi
323556236: add ecx, 255
323556239: adc ebx, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556242: mov [esp+0x8], ecx
323556246: mov [esp+0xC], ebx
323556250: xor ecx, ebp
323556252: xor ebx, edi
323556254: and eax, ecx
323556256: and edx, ebx
323556258: and eax, 0x00
323556261: and edx, -2147483648
323556267: mov ecx, eax
323556269: or ecx, edx
323556271: jnz 323562105 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556277: mov ecx, [esp+0x10]
323556281: mov ebp, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556284: mov ecx, [esp+0x8]
323556288: mov ebx, [esp+0xC]
323556292: mov eax, 255
323556297: xor edx, edx
323556299: cmp eax, ecx
323556301: mov edi, edx
323556303: sbb edi, ebx
323556305: jl 323560146 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556311: mov eax, -256
323556316: mov edx, -1
323556321: cmp ecx, eax
323556323: mov edi, ebx
323556325: sbb edi, edx
323556327: jl 323560146 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556333: mov ecx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564669
323556339: mov [esp+0x20], ecx
323556343: mov ecx, [esp+0x8]
323556347: mov ebx, [esp+0xC] ;*l2i ; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556351: mov ebp, ecx
323556353: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556359: mov edi, [esp+0x20]
323556363: mov ebx, [edi+0x8] ; implicit exception: dispatches to 323564685
323556366: cmp ebp, ebx
323556368: jnc 323561553
323556374: mov ebx, [edi+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556381: mov [esp+0x20], ebx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556385: mov ebx, [esp+0x20]
323556389: mov ebx, [ebx+0x4] ; implicit exception: dispatches to 323564189
323556392: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323556398: jnz 323562997
323556404: mov edx, [esp+0x20] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@41 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556408: mov ecx, [esp+0x10]
323556412: nop
323556415: call 323093856 ; OopMap{[16]=Oop [24]=Oop [28]=Oop [36]=Oop off=3492}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; {static_call}
323556420: mov [esp+0x8], eax
323556424: mov esi, [esp+0x24]
323556428: mov ebp, [esi+0x18] ; implicit exception: dispatches to 323564337
323556431: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@6 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556434: mov esi, eax
323556436: mov ecx, [esi+0x18] ; implicit exception: dispatches to 323564357
323556439: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@1 (line 345)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556442: mov eax, ecx
323556444: mov edx, ebx
323556446: xor eax, ebp
323556448: xor edx, edi
323556450: add ecx, ebp
323556452: adc ebx, edi ;*ladd
; - org.jruby.RubyFixnum::addFixnum@10 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556454: mov [esp+0x28], ecx
323556458: mov [esp+0x2C], ebx
323556462: xor ecx, ebp
323556464: xor ebx, edi
323556466: not eax
323556468: not edx
323556470: and eax, ecx
323556472: and edx, ebx
323556474: and eax, 0x00
323556477: and edx, -2147483648
323556483: mov ecx, eax
323556485: or ecx, edx
323556487: jnz 323562205 ;*ifeq
; - org.jruby.RubyFixnum::additionOverflowed@18 (line 354)
; - org.jruby.RubyFixnum::addFixnum@20 (line 347)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556493: mov ecx, [esp+0x10]
323556497: mov ebp, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::addFixnum@34 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556500: mov ecx, [esp+0x28]
323556504: mov ebx, [esp+0x2C]
323556508: mov eax, 255
323556513: xor edx, edx
323556515: cmp eax, ecx
323556517: mov edi, edx
323556519: sbb edi, ebx
323556521: jl 323560580 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556527: mov eax, -256
323556532: mov edx, -1
323556537: cmp ecx, eax
323556539: mov edi, ebx
323556541: sbb edi, edx
323556543: jl 323560580 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556549: mov ecx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564765
323556555: mov [esp+0x20], ecx
323556559: mov ecx, [esp+0x28]
323556563: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556567: mov ebp, ecx
323556569: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556575: mov edi, [esp+0x20]
323556579: mov ebx, [edi+0x8] ; implicit exception: dispatches to 323564781
323556582: cmp ebp, ebx
323556584: jnc 323561617
323556590: mov ebx, [edi+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::addFixnum@42 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556597: mov [esp+0xC], ebx ;*invokespecial addFixnum
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556601: mov ebx, [esp+0xC]
323556605: mov ebx, [ebx+0x4] ; implicit exception: dispatches to 323564377
323556608: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323556614: jnz 323563017
323556620: mov ecx, [esp+0xC] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@50 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556624: mov ebp, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323556629: mov ebx, [ebp+0x68]
323556632: mov [esp+0xC], ebx
323556636: mov [esp+0x20], ecx ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556640: mov esi, [esp+0x18]
323556644: mov ebp, [esi+0x18]
323556647: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_minus@1 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556650: mov eax, ebp
323556652: mov edx, edi
323556654: xor eax, 1
323556657: xor edx, 0x00
323556660: mov ecx, ebp
323556662: mov ebx, edi
323556664: add ecx, 255
323556667: adc ebx, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556670: mov [esp+0x28], ecx
323556674: mov [esp+0x2C], ebx
323556678: xor ecx, ebp
323556680: xor ebx, edi
323556682: and eax, ecx
323556684: and edx, ebx
323556686: and eax, 0x00
323556689: and edx, -2147483648
323556695: mov ecx, eax
323556697: or ecx, edx
323556699: jnz 323561829 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556705: mov ebx, [esp+0x10]
323556709: mov ebp, [ebx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556712: mov ecx, [esp+0x28]
323556716: mov ebx, [esp+0x2C]
323556720: mov eax, 255
323556725: xor edx, edx
323556727: cmp eax, ecx
323556729: mov edi, edx
323556731: sbb edi, ebx
323556733: jl 323559007 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556739: mov eax, -256
323556744: mov edx, -1
323556749: cmp ecx, eax
323556751: mov edi, ebx
323556753: sbb edi, edx
323556755: jl 323559007 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556761: mov ebx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323563821
323556767: mov [esp+0x18], ebx
323556771: mov ecx, [esp+0x28]
323556775: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556779: mov ebp, ecx
323556781: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556787: mov ebx, [esp+0x18]
323556791: mov ebx, [ebx+0x8] ; implicit exception: dispatches to 323563837
323556794: cmp ebp, ebx
323556796: jnc 323561229
323556802: mov ebp, [esp+0x18]
323556806: mov ecx, [ebp+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556813: mov [esp+0x18], ecx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556817: mov ecx, [esp+0x18]
323556821: mov ebx, [ecx+0x4] ; implicit exception: dispatches to 323563637
323556824: cmp ebx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323556830: jnz 323563037
323556836: mov ebx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@41 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556840: mov [esp+0x18], ebx
323556844: mov ecx, [esp+0x10]
323556848: mov ebx, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_lt@1 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556851: mov [esp+0x8], ebx
323556855: mov esi, [esp+0x18]
323556859: mov ecx, [esi+0x18]
323556862: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_lt@5 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556865: mov ebp, 2
323556870: xor edi, edi
323556872: cmp ecx, ebp
323556874: mov edx, ebx
323556876: sbb edx, edi
323556878: jge 323556907 ;*ifge
; - org.jruby.RubyFixnum::op_lt@10 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556880: mov ebp, [esp+0x8]
323556884: mov ebp, [ebp+0x8C] ;*getfield trueObject
; - org.jruby.Ruby::getTrue@1 (line 1744)
; - org.jruby.RubyBoolean::newBoolean@5 (line 104)
; - org.jruby.RubyFixnum::op_lt@18 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564225
323556890: jmp 323556917
323556892: mov ebp, [esp+0x8]
323556896: mov ebp, [ebp+0x8C] ;*getfield trueObject
; - org.jruby.Ruby::getTrue@1 (line 1744)
; - org.jruby.RubyBoolean::newBoolean@5 (line 104)
; - org.jruby.RubyFixnum::op_lt@18 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564049
323556902: jmp 323555967
323556907: mov edi, [esp+0x8]
323556911: mov ebp, [edi+0x90] ;*areturn
; - org.jruby.RubyFixnum::op_lt@21 (line 883)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@5 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564209
323556917: mov eax, [ebp+0x4] ; implicit exception: dispatches to 323563657
323556920: cmp eax, 'org/jruby/RubyBoolean'
; {oop('org/jruby/RubyBoolean')}
323556926: jnz 323561325 ;*invokeinterface isTrue
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@8 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556932: mov eax, a 'java/lang/Class' = 'org/jruby/RubyBasicObject'
; {oop(a 'java/lang/Class' = 'org/jruby/RubyBasicObject')}
323556937: mov edi, [eax+0x68] ;*getstatic NULL_OBJECT_ARRAY
; - org.jruby.RubyBasicObject::<init>@5 (line 84)
; - org.jruby.RubyObject::<init>@2 (line 116)
; - org.jruby.RubyNumeric::<init>@2 (line 114)
; - org.jruby.RubyInteger::<init>@2 (line 95)
; - org.jruby.RubyFixnum::<init>@5 (line 112)
; - org.jruby.RubyFixnum::newFixnum@25 (line 173)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556940: mov [esp+0xC], edi
323556944: mov edi, [ebp+0x8]
323556947: test edi, 1
323556953: jz 323557608 ;*ifeq
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@13 (line 49)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556959: mov eax, ecx
323556961: mov edx, ebx
323556963: xor eax, 2
323556966: xor edx, 0x00
323556969: mov ebp, ecx
323556971: mov edi, ebx
323556973: add ebp, 254
323556976: adc edi, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323556979: mov [esp+0x28], ebp
323556983: mov [esp+0x2C], edi
323556987: xor ebp, ecx
323556989: xor edi, ebx
323556991: and eax, ebp
323556993: and edx, edi
323556995: and eax, 0x00
323556998: and edx, -2147483648
323557004: mov ecx, eax
323557006: or ecx, edx
323557008: jnz 323562141 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557014: mov ecx, [esp+0x28]
323557018: mov ebx, [esp+0x2C]
323557022: mov ebp, 255
323557027: xor edi, edi
323557029: cmp ebp, ecx
323557031: mov eax, edi
323557033: sbb eax, ebx
323557035: jl 323560284 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557041: mov ebp, -256
323557046: mov edi, -1
323557051: cmp ecx, ebp
323557053: mov eax, ebx
323557055: sbb eax, edi
323557057: jl 323560284 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557063: mov ecx, [esp+0x8]
323557067: mov ebx, [ecx+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564701
323557073: mov [esp+0x24], ebx
323557077: mov ecx, [esp+0x28]
323557081: mov ebx, [esp+0x2C] ;*l2i
; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557085: mov ebp, ecx
323557087: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557093: mov edi, [esp+0x24]
323557097: mov ebx, [edi+0x8] ; implicit exception: dispatches to 323564717
323557100: cmp ebp, ebx
323557102: jnc 323561577
323557108: mov ebx, edi
323557110: mov ebx, [ebx+ecx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557117: mov [esp+0x24], ebx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@24 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557121: mov ecx, [esp+0x24]
323557125: mov ecx, [ecx+0x4] ; implicit exception: dispatches to 323564241
323557128: cmp ecx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323557134: jnz 323563057
323557140: mov edx, [esp+0x24] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@27 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557144: mov ecx, [esp+0x10]
323557148: nop
323557151: call 323093856 ; OopMap{[16]=Oop [24]=Oop [28]=Oop [32]=Oop off=4228}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@30 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; {static_call}
323557156: mov [esp+0x24], eax
323557160: mov esi, [esp+0x18]
323557164: mov ebp, [esi+0x18]
323557167: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::op_minus@1 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557170: mov eax, ebp
323557172: mov edx, edi
323557174: xor eax, 1
323557177: xor edx, 0x00
323557180: mov ecx, ebp
323557182: mov ebx, edi
323557184: add ecx, 255
323557187: adc ebx, 255 ;*lsub
; - org.jruby.RubyFixnum::op_minus@5 (line 391)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557190: mov [esp+0x8], ecx
323557194: mov [esp+0xC], ebx
323557198: xor ecx, ebp
323557200: xor ebx, edi
323557202: and eax, ecx
323557204: and edx, ebx
323557206: and eax, 0x00
323557209: and edx, -2147483648
323557215: mov ebx, eax
323557217: or ebx, edx
323557219: jnz 323562233 ;*ifeq
; - org.jruby.RubyFixnum::subtractionOverflowed@22 (line 358)
; - org.jruby.RubyFixnum::op_minus@15 (line 392)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557225: mov ecx, [esp+0x10]
323557229: mov ebp, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::op_minus@29 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557232: mov ecx, [esp+0x8]
323557236: mov ebx, [esp+0xC]
323557240: mov eax, 255
323557245: xor edx, edx
323557247: cmp eax, ecx
323557249: mov esi, edx
323557251: sbb esi, ebx
323557253: jl 323560734 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557259: mov eax, -256
323557264: mov edx, -1
323557269: cmp ecx, eax
323557271: mov esi, ebx
323557273: sbb esi, edx
323557275: jl 323560734 ;*iflt
; - org.jruby.RubyFixnum::isInCacheRange@13 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557281: mov ebx, [ebp+0x94] ;*getfield fixnumCache
; - org.jruby.RubyFixnum::newFixnum@8 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; implicit exception: dispatches to 323564797
323557287: mov [esp+0x18], ebx
323557291: mov ecx, [esp+0x8]
323557295: mov ebx, [esp+0xC]
323557299: mov ebx, ecx ;*l2i ; - org.jruby.RubyFixnum::newFixnum@12 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557301: mov ebp, ebx
323557303: add ebp, 256 ;*iadd
; - org.jruby.RubyFixnum::newFixnum@16 (line 171)
; - org.jruby.RubyFixnum::op_minus@34 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557309: mov edi, [esp+0x18]
323557313: mov edi, [edi+0x8] ; implicit exception: dispatches to 323564813
323557316: cmp ebp, edi
323557318: jnc 323561641
323557324: mov ecx, [esp+0x18]
323557328: mov ebx, [ecx+ebx*4+0x40C]
;*areturn
; - org.jruby.RubyFixnum::op_minus@37 (line 395)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557335: mov [esp+0x18], ebx ;*invokevirtual op_minus
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@38 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557339: mov ebx, [esp+0x18]
323557343: mov ecx, [ebx+0x4] ; implicit exception: dispatches to 323564397
323557346: cmp ecx, 'org/jruby/RubyFixnum'
; {oop('org/jruby/RubyFixnum')}
323557352: jnz 323563077
323557358: mov edx, [esp+0x18] ;*checkcast
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@41 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557362: mov ecx, [esp+0x10]
323557366: nop
323557367: call 323093856 ; OopMap{[16]=Oop [28]=Oop [32]=Oop [36]=Oop off=4444}
;*invokestatic boxedFib
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; {static_call}
323557372: mov [esp+0x8], eax
323557376: mov esi, [esp+0x24]
323557380: mov ebp, [esi+0x18] ; implicit exception: dispatches to 323564417
323557383: mov edi, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@6 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557386: mov esi, eax
323557388: mov ecx, [esi+0x18] ; implicit exception: dispatches to 323564437
323557391: mov ebx, [esi+0x1C] ;*getfield value
; - org.jruby.RubyFixnum::addFixnum@1 (line 345)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557394: mov eax, ecx
323557396: mov edx, ebx
323557398: xor eax, ebp
323557400: xor edx, edi
323557402: add ecx, ebp
323557404: adc ebx, edi ;*ladd
; - org.jruby.RubyFixnum::addFixnum@10 (line 346)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557406: mov [esp+0x28], ecx
323557410: mov [esp+0x2C], ebx
323557414: xor ecx, ebp
323557416: xor ebx, edi
323557418: not eax
323557420: not edx
323557422: and eax, ecx
323557424: and edx, ebx
323557426: and eax, 0x00
323557429: and edx, -2147483648
323557435: mov ebx, eax
323557437: or ebx, edx
323557439: jnz 323562269 ;*ifeq
; - org.jruby.RubyFixnum::additionOverflowed@18 (line 354)
; - org.jruby.RubyFixnum::addFixnum@20 (line 347)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557445: mov ecx, [esp+0x10]
323557449: mov ebp, [ecx+0x2C] ;*getfield runtime
; - org.jruby.runtime.ThreadContext::getRuntime@1 (line 166)
; - org.jruby.RubyFixnum::addFixnum@34 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557452: mov ecx, [esp+0x28]
323557456: mov ebx, [esp+0x2C]
323557460: mov eax, 255
323557465: xor edx, edx
323557467: cmp eax, ecx
323557469: mov esi, edx
323557471: sbb esi, ebx
323557473: jl 323560876 ;*ifgt
; - org.jruby.RubyFixnum::isInCacheRange@5 (line 177)
; - org.jruby.RubyFixnum::newFixnum@1 (line 170)
; - org.jruby.RubyFixnum::addFixnum@39 (line 350)
; - org.jruby.RubyFixnum::op_plus@13 (line 331)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@47 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
; - org.jruby.test.bench.BenchFixnumFibRecursive::boxedFib@44 (line 52)
323557479: mov eax, -256
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment