Skip to content

Instantly share code, notes, and snippets.

@P0lip

P0lip/elem-at Secret

Created May 2, 2017 08:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save P0lip/a349a577c61f7e5196584ccc4e11aba0 to your computer and use it in GitHub Desktop.
Save P0lip/a349a577c61f7e5196584ccc4e11aba0 to your computer and use it in GitHub Desktop.
--- Raw source ---
(arr, index) {
return arr[index];
}
--- Optimized code ---
optimization_id = 0
source_position = 15
kind = OPTIMIZED_FUNCTION
name = elemAt
stack_slots = 6
compiler = turbofan
Instructions (size = 327)
-- <elemAt.js:1:16> --
-- B0 start (construct frame) --
0x1aa58ba04220 0 55 push rbp
0x1aa58ba04221 1 4889e5 REX.W movq rbp,rsp
0x1aa58ba04224 4 56 push rsi
0x1aa58ba04225 5 57 push rdi
0x1aa58ba04226 6 4883ec10 REX.W subq rsp,0x10
0x1aa58ba0422a 10 493ba5700c0000 REX.W cmpq rsp,[r13+0xc70]
0x1aa58ba04231 17 0f8675000000 jna 140 (0x1aa58ba042ac)
-- B2 start --
-- B3 start --
-- <elemAt.js:2:14> --
0x1aa58ba04237 23 488b4518 REX.W movq rax,[rbp+0x18]
0x1aa58ba0423b 27 a801 test al,0x1
0x1aa58ba0423d 29 0f84e3000000 jz 262 (0x1aa58ba04326)
0x1aa58ba04243 35 48bb793c503e5d080000 REX.W movq rbx,0x85d3e503c79 ;; object: 0x85d3e503c79 <Map(FAST_SMI_ELEMENTS)>
0x1aa58ba0424d 45 483958ff REX.W cmpq [rax-0x1],rbx
0x1aa58ba04251 49 0f85d4000000 jnz 267 (0x1aa58ba0432b)
0x1aa58ba04257 55 488b580f REX.W movq rbx,[rax+0xf]
0x1aa58ba0425b 59 488b5017 REX.W movq rdx,[rax+0x17]
0x1aa58ba0425f 63 488b4d10 REX.W movq rcx,[rbp+0x10]
0x1aa58ba04263 67 f6c101 testb rcx,0x1
0x1aa58ba04266 70 0f855a000000 jnz 166 (0x1aa58ba042c6)
-- B8 start --
0x1aa58ba0426c 76 488bf1 REX.W movq rsi,rcx
0x1aa58ba0426f 79 48c1ee20 REX.W shrq rsi, 32
-- B9 start (deconstruct frame) --
0x1aa58ba04273 83 48c1ea20 REX.W shrq rdx, 32
0x1aa58ba04277 87 8bfe movl rdi,rsi
0x1aa58ba04279 89 49ba0000000001000000 REX.W movq r10,0x100000000
0x1aa58ba04283 99 4c3bd7 REX.W cmpq r10,rdi
0x1aa58ba04286 102 7310 jnc 120 (0x1aa58ba04298)
Abort message:
32 bit value in register is not zero-extended
0x1aa58ba04288 104 48ba0000000001000000 REX.W movq rdx,0x100000000
0x1aa58ba04292 114 e889fedfff call Abort (0x1aa58b804120) ;; code: BUILTIN
0x1aa58ba04297 119 cc int3l
0x1aa58ba04298 120 3bf2 cmpl rsi,rdx
0x1aa58ba0429a 122 0f8390000000 jnc 272 (0x1aa58ba04330)
0x1aa58ba042a0 128 488b44fb0f REX.W movq rax,[rbx+rdi*8+0xf]
-- <elemAt.js:3:1> --
0x1aa58ba042a5 133 488be5 REX.W movq rsp,rbp
0x1aa58ba042a8 136 5d pop rbp
0x1aa58ba042a9 137 c21800 ret 0x18
-- B10 start (no frame) --
-- B1 start (deferred) --
-- <elemAt.js:1:16> --
0x1aa58ba042ac 140 48bb00f6900701000000 REX.W movq rbx,0x10790f600 ;; external reference (Runtime::StackGuard)
0x1aa58ba042b6 150 33c0 xorl rax,rax
0x1aa58ba042b8 152 488b75f8 REX.W movq rsi,[rbp-0x8]
0x1aa58ba042bc 156 e8dffedfff call 0x1aa58b8041a0 ;; code: STUB, CEntryStub, minor: 8
0x1aa58ba042c1 161 e971ffffff jmp 23 (0x1aa58ba04237)
-- B4 start (deferred) --
-- <elemAt.js:2:14> --
0x1aa58ba042c6 166 488b41ff REX.W movq rax,[rcx-0x1]
0x1aa58ba042ca 170 49394550 REX.W cmpq [r13+0x50],rax
0x1aa58ba042ce 174 0f8561000000 jnz 277 (0x1aa58ba04335)
0x1aa58ba042d4 180 c5fb104107 vmovsd xmm0,[rcx+0x7]
0x1aa58ba042d9 185 c5fb2cf0 vcvttsd2si rsi,xmm0
0x1aa58ba042dd 189 c5f157c9 vxorpd xmm1,xmm1,xmm1
0x1aa58ba042e1 193 c5f32ace vcvtlsi2sd xmm1,xmm1,rsi
0x1aa58ba042e5 197 c5f92ec8 vucomisd xmm1,xmm0
0x1aa58ba042e9 201 0f8a4b000000 jpe 282 (0x1aa58ba0433a)
0x1aa58ba042ef 207 0f8545000000 jnz 282 (0x1aa58ba0433a)
0x1aa58ba042f5 213 48895de8 REX.W movq [rbp-0x18],rbx
0x1aa58ba042f9 217 488955e0 REX.W movq [rbp-0x20],rdx
0x1aa58ba042fd 221 83fe00 cmpl rsi,0x0
0x1aa58ba04300 224 0f850f000000 jnz 245 (0x1aa58ba04315)
-- B5 start (deferred) --
-- B6 start (deferred) --
0x1aa58ba04306 230 660f3a16c001 pextrd rax,xmm0,1
0x1aa58ba0430c 236 83f800 cmpl rax,0x0
0x1aa58ba0430f 239 0f8c2a000000 jl 287 (0x1aa58ba0433f)
-- B7 start (deferred) --
0x1aa58ba04315 245 488b5de8 REX.W movq rbx,[rbp-0x18]
0x1aa58ba04319 249 488b4518 REX.W movq rax,[rbp+0x18]
0x1aa58ba0431d 253 488b55e0 REX.W movq rdx,[rbp-0x20]
0x1aa58ba04321 257 e94dffffff jmp 83 (0x1aa58ba04273)
0x1aa58ba04326 262 e8d5fcc7ff call 0x1aa58b684000 ;; debug: deopt position, script offset '43'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'Smi'
;; debug: deopt index 0
;; deoptimization bailout 0
0x1aa58ba0432b 267 e8dafcc7ff call 0x1aa58b68400a ;; debug: deopt position, script offset '43'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'wrong map'
;; debug: deopt index 1
;; deoptimization bailout 1
0x1aa58ba04330 272 e8dffcc7ff call 0x1aa58b684014 ;; debug: deopt position, script offset '43'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'out of bounds'
;; debug: deopt index 2
;; deoptimization bailout 2
0x1aa58ba04335 277 e8eefcc7ff call 0x1aa58b684028 ;; debug: deopt position, script offset '43'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'not a heap number'
;; debug: deopt index 4
;; deoptimization bailout 4
0x1aa58ba0433a 282 e8f3fcc7ff call 0x1aa58b684032 ;; debug: deopt position, script offset '43'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'lost precision or NaN'
;; debug: deopt index 5
;; deoptimization bailout 5
0x1aa58ba0433f 287 e8f8fcc7ff call 0x1aa58b68403c ;; debug: deopt position, script offset '43'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'minus zero'
;; debug: deopt index 6
;; deoptimization bailout 6
0x1aa58ba04344 292 90 nop
0x1aa58ba04345 293 90 nop
0x1aa58ba04346 294 90 nop
0x1aa58ba04347 295 90 nop
0x1aa58ba04348 296 90 nop
0x1aa58ba04349 297 90 nop
0x1aa58ba0434a 298 90 nop
0x1aa58ba0434b 299 90 nop
0x1aa58ba0434c 300 90 nop
0x1aa58ba0434d 301 90 nop
0x1aa58ba0434e 302 90 nop
0x1aa58ba0434f 303 90 nop
0x1aa58ba04350 304 90 nop
0x1aa58ba04351 305 0f1f00 nop
;;; Safepoint table.
Source positions:
pc offset position
0 15
23 43
133 51
140 15
166 43
Inlined functions (count = 0)
Deoptimization Input Data (deopt points = 7)
index ast id argc pc
0 0 0 -1
1 0 0 -1
2 0 0 -1
3 0 0 161
4 0 0 -1
5 0 0 -1
6 0 0 -1
Safepoints (size = 19)
0x1aa58ba042c1 161 000000 (sp -> fp) 3
RelocInfo (size = 329)
0x1aa58ba04220 comment (-- <elemAt.js:1:16> --)
0x1aa58ba04220 comment (-- B0 start (construct frame) --)
0x1aa58ba04237 comment (-- B2 start --)
0x1aa58ba04237 comment (-- B3 start --)
0x1aa58ba04237 comment (-- <elemAt.js:2:14> --)
0x1aa58ba04245 embedded object (0x85d3e503c79 <Map(FAST_SMI_ELEMENTS)>)
0x1aa58ba0426c comment (-- B8 start --)
0x1aa58ba04273 comment (-- B9 start (deconstruct frame) --)
0x1aa58ba04288 comment (Abort message: )
0x1aa58ba04288 comment (32 bit value in register is not zero-extended)
0x1aa58ba04293 code target (BUILTIN) (0x1aa58b804120)
0x1aa58ba042a5 comment (-- <elemAt.js:3:1> --)
0x1aa58ba042ac comment (-- B10 start (no frame) --)
0x1aa58ba042ac comment (-- B1 start (deferred) --)
0x1aa58ba042ac comment (-- <elemAt.js:1:16> --)
0x1aa58ba042ae external reference (Runtime::StackGuard) (0x10790f600)
0x1aa58ba042bd code target (STUB) (0x1aa58b8041a0)
0x1aa58ba042c6 comment (-- B4 start (deferred) --)
0x1aa58ba042c6 comment (-- <elemAt.js:2:14> --)
0x1aa58ba04306 comment (-- B5 start (deferred) --)
0x1aa58ba04306 comment (-- B6 start (deferred) --)
0x1aa58ba04315 comment (-- B7 start (deferred) --)
0x1aa58ba04326 deopt script offset (43)
0x1aa58ba04326 deopt inlining id (-1)
0x1aa58ba04326 deopt reason (Smi)
0x1aa58ba04326 deopt index
0x1aa58ba04327 runtime entry (deoptimization bailout 0)
0x1aa58ba0432b deopt script offset (43)
0x1aa58ba0432b deopt inlining id (-1)
0x1aa58ba0432b deopt reason (wrong map)
0x1aa58ba0432b deopt index
0x1aa58ba0432c runtime entry (deoptimization bailout 1)
0x1aa58ba04330 deopt script offset (43)
0x1aa58ba04330 deopt inlining id (-1)
0x1aa58ba04330 deopt reason (out of bounds)
0x1aa58ba04330 deopt index
0x1aa58ba04331 runtime entry (deoptimization bailout 2)
0x1aa58ba04335 deopt script offset (43)
0x1aa58ba04335 deopt inlining id (-1)
0x1aa58ba04335 deopt reason (not a heap number)
0x1aa58ba04335 deopt index
0x1aa58ba04336 runtime entry (deoptimization bailout 4)
0x1aa58ba0433a deopt script offset (43)
0x1aa58ba0433a deopt inlining id (-1)
0x1aa58ba0433a deopt reason (lost precision or NaN)
0x1aa58ba0433a deopt index
0x1aa58ba0433b runtime entry (deoptimization bailout 5)
0x1aa58ba0433f deopt script offset (43)
0x1aa58ba0433f deopt inlining id (-1)
0x1aa58ba0433f deopt reason (minus zero)
0x1aa58ba0433f deopt index
0x1aa58ba04340 runtime entry (deoptimization bailout 6)
0x1aa58ba04354 comment (;;; Safepoint table.)
--- End code ---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment