Skip to content

Instantly share code, notes, and snippets.

@P0lip

P0lip/concat Secret

Created May 2, 2017 07:54
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/fe9747a97b8f53c125b243803064dba5 to your computer and use it in GitHub Desktop.
Save P0lip/fe9747a97b8f53c125b243803064dba5 to your computer and use it in GitHub Desktop.
--- Raw source ---
(a, b) {
return a + b;
}
--- Optimized code ---
optimization_id = 0
source_position = 15
kind = OPTIMIZED_FUNCTION
name = concat
stack_slots = 5
compiler = crankshaft
Instructions (size = 194)
0x3ba8de705000 0 55 push rbp
0x3ba8de705001 1 4889e5 REX.W movq rbp,rsp
0x3ba8de705004 4 56 push rsi
0x3ba8de705005 5 57 push rdi
0x3ba8de705006 6 4883ec08 REX.W subq rsp,0x8
0x3ba8de70500a 10 50 push rax
0x3ba8de70500b 11 b801000000 movl rax,0x1
0x3ba8de705010 16 49baefdeefbeaddeefbe REX.W movq r10,0xbeefdeadbeefdeef
0x3ba8de70501a 26 4c8914c4 REX.W movq [rsp+rax*8],r10
0x3ba8de70501e 30 ffc8 decl rax
0x3ba8de705020 32 75f8 jnz 26 (0x3ba8de70501a)
0x3ba8de705022 34 58 pop rax
;;; <@0,#0> -------------------- B0 --------------------
;;; <@8,#5> prologue
;;; Prologue begin
;;; Prologue end
;;; <@12,#7> -------------------- B1 --------------------
;;; <@14,#8> context
0x3ba8de705023 35 488b45f8 REX.W movq rax,[rbp-0x8]
;;; <@15,#8> gap
0x3ba8de705027 39 488945e8 REX.W movq [rbp-0x18],rax
;;; <@18,#12> -------------------- B2 --------------------
;;; <@19,#12> gap
0x3ba8de70502b 43 488bf0 REX.W movq rsi,rax
;;; <@20,#14> stack-check
0x3ba8de70502e 46 493ba5700c0000 REX.W cmpq rsp,[r13+0xc70]
0x3ba8de705035 53 7305 jnc 60 (0x3ba8de70503c)
0x3ba8de705037 55 e86426efff call StackCheck (0x3ba8de5f76a0) ;; code: BUILTIN
;;; <@22,#14> lazy-bailout
;;; <@23,#14> gap
0x3ba8de70503c 60 488b5d18 REX.W movq rbx,[rbp+0x18]
;;; <@24,#16> check-non-smi
0x3ba8de705040 64 f6c301 testb rbx,0x1
0x3ba8de705043 67 0f8447000000 jz 144 (0x3ba8de705090)
;;; <@26,#17> check-instance-type
0x3ba8de705049 73 4c8b53ff REX.W movq r10,[rbx-0x1]
0x3ba8de70504d 77 41f6420b80 testb [r10+0xb],0x80
0x3ba8de705052 82 0f853d000000 jnz 149 (0x3ba8de705095)
;;; <@27,#17> gap
0x3ba8de705058 88 488b4d10 REX.W movq rcx,[rbp+0x10]
;;; <@28,#18> check-non-smi
0x3ba8de70505c 92 f6c101 testb rcx,0x1
0x3ba8de70505f 95 0f8435000000 jz 154 (0x3ba8de70509a)
;;; <@30,#19> check-instance-type
0x3ba8de705065 101 4c8b51ff REX.W movq r10,[rcx-0x1]
0x3ba8de705069 105 41f6420b80 testb [r10+0xb],0x80
0x3ba8de70506e 110 0f852b000000 jnz 159 (0x3ba8de70509f)
;;; <@31,#19> gap
0x3ba8de705074 116 488b75e8 REX.W movq rsi,[rbp-0x18]
0x3ba8de705078 120 488bd3 REX.W movq rdx,rbx
0x3ba8de70507b 123 488bc1 REX.W movq rax,rcx
;;; <@32,#20> string-add
0x3ba8de70507e 126 e8fd63e2ff call 0x3ba8de52b480 ;; code: STUB, StringAddStub, minor: 0
;;; <@34,#20> lazy-bailout
;;; <@36,#22> return
0x3ba8de705083 131 488be5 REX.W movq rsp,rbp
0x3ba8de705086 134 5d pop rbp
0x3ba8de705087 135 c21800 ret 0x18
0x3ba8de70508a 138 660f1f440000 nop
;;; -------------------- Jump table --------------------
0x3ba8de705090 144 e875efc7ff call 0x3ba8de38400a ;; debug: deopt position, script offset '35'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'Smi'
;; debug: deopt index 1
;; deoptimization bailout 1
0x3ba8de705095 149 e87aefc7ff call 0x3ba8de384014 ;; debug: deopt position, script offset '35'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'wrong instance type'
;; debug: deopt index 2
;; deoptimization bailout 2
0x3ba8de70509a 154 e87fefc7ff call 0x3ba8de38401e ;; debug: deopt position, script offset '35'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'Smi'
;; debug: deopt index 3
;; deoptimization bailout 3
0x3ba8de70509f 159 e884efc7ff call 0x3ba8de384028 ;; debug: deopt position, script offset '35'
;; debug: deopt position, inlining id '-1'
;; debug: deopt reason 'wrong instance type'
;; debug: deopt index 4
;; deoptimization bailout 4
;;; Safepoint table.
Source positions:
pc offset position
64 35
73 35
73 35
88 35
92 35
101 35
101 35
116 35
126 35
131 35
131 35
131 35
131 35
138 35
Inlined functions (count = 0)
Deoptimization Input Data (deopt points = 6)
index ast id argc pc
0 4 0 60
1 4 0 -1
2 4 0 -1
3 4 0 -1
4 4 0 -1
5 4 0 131
Safepoints (size = 30)
0x3ba8de70503c 60 10000 (sp -> fp) 0
0x3ba8de705083 131 10000 (sp -> fp) 5
RelocInfo (size = 320)
0x3ba8de705023 comment (;;; <@0,#0> -------------------- B0 --------------------)
0x3ba8de705023 comment (;;; <@8,#5> prologue)
0x3ba8de705023 comment (;;; Prologue begin)
0x3ba8de705023 comment (;;; Prologue end)
0x3ba8de705023 comment (;;; <@12,#7> -------------------- B1 --------------------)
0x3ba8de705023 comment (;;; <@14,#8> context)
0x3ba8de705027 comment (;;; <@15,#8> gap)
0x3ba8de70502b comment (;;; <@18,#12> -------------------- B2 --------------------)
0x3ba8de70502b comment (;;; <@19,#12> gap)
0x3ba8de70502e comment (;;; <@20,#14> stack-check)
0x3ba8de705038 code target (BUILTIN) (0x3ba8de5f76a0)
0x3ba8de70503c comment (;;; <@22,#14> lazy-bailout)
0x3ba8de70503c comment (;;; <@23,#14> gap)
0x3ba8de705040 comment (;;; <@24,#16> check-non-smi)
0x3ba8de705049 comment (;;; <@26,#17> check-instance-type)
0x3ba8de705058 comment (;;; <@27,#17> gap)
0x3ba8de70505c comment (;;; <@28,#18> check-non-smi)
0x3ba8de705065 comment (;;; <@30,#19> check-instance-type)
0x3ba8de705074 comment (;;; <@31,#19> gap)
0x3ba8de70507e comment (;;; <@32,#20> string-add)
0x3ba8de70507f code target (STUB) (0x3ba8de52b480)
0x3ba8de705083 comment (;;; <@34,#20> lazy-bailout)
0x3ba8de705083 comment (;;; <@36,#22> return)
0x3ba8de705090 comment (;;; -------------------- Jump table --------------------)
0x3ba8de705090 deopt script offset (35)
0x3ba8de705090 deopt inlining id (-1)
0x3ba8de705090 deopt reason (Smi)
0x3ba8de705090 deopt index
0x3ba8de705091 runtime entry (deoptimization bailout 1)
0x3ba8de705095 deopt script offset (35)
0x3ba8de705095 deopt inlining id (-1)
0x3ba8de705095 deopt reason (wrong instance type)
0x3ba8de705095 deopt index
0x3ba8de705096 runtime entry (deoptimization bailout 2)
0x3ba8de70509a deopt script offset (35)
0x3ba8de70509a deopt inlining id (-1)
0x3ba8de70509a deopt reason (Smi)
0x3ba8de70509a deopt index
0x3ba8de70509b runtime entry (deoptimization bailout 3)
0x3ba8de70509f deopt script offset (35)
0x3ba8de70509f deopt inlining id (-1)
0x3ba8de70509f deopt reason (wrong instance type)
0x3ba8de70509f deopt index
0x3ba8de7050a0 runtime entry (deoptimization bailout 4)
0x3ba8de7050a4 comment (;;; Safepoint table.)
--- End code ---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment