-
-
Save P0lip/fe9747a97b8f53c125b243803064dba5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- 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