d2caa302a7
The majority of context slot accesses are to the local context (current context register and depth 0), so this adds bytecodes to optimise for that case. This cuts down bytecode size by roughly 1% (measured on Octane and Top25). Review-Url: https://codereview.chromium.org/2459513002 Cr-Commit-Position: refs/heads/master@{#40641}
51 lines
1.4 KiB
Plaintext
51 lines
1.4 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: yes
|
|
|
|
---
|
|
snippet: "
|
|
return eval('1;');
|
|
"
|
|
frame size: 10
|
|
parameter count: 1
|
|
bytecode array length: 63
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(3),
|
|
B(PushContext), R(0),
|
|
B(Ldar), R(this),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(CreateMappedArguments),
|
|
B(StaCurrentContextSlot), U8(6),
|
|
B(Ldar), R(new_target),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(4),
|
|
B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(4), U8(1), R(1),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(3),
|
|
B(LdaZero),
|
|
B(Star), R(7),
|
|
B(LdaSmi), U8(30),
|
|
B(Star), R(8),
|
|
B(LdaSmi), U8(41),
|
|
B(Star), R(9),
|
|
B(Mov), R(1), R(4),
|
|
B(Mov), R(3), R(5),
|
|
B(Mov), R(closure), R(6),
|
|
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
|
|
B(Star), R(1),
|
|
/* 41 E> */ B(Call), R(1), R(2), U8(2), U8(2),
|
|
/* 53 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["eval"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["1;"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|