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}
143 lines
2.6 KiB
Plaintext
143 lines
2.6 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: no
|
|
test function name: f
|
|
|
|
---
|
|
snippet: "
|
|
function f() { return arguments; }
|
|
f();
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 6
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 15 S> */ B(Nop),
|
|
/* 33 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f() { return arguments[0]; }
|
|
f();
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 9
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 15 S> */ B(LdaZero),
|
|
/* 31 E> */ B(LdaKeyedProperty), R(0), U8(2),
|
|
/* 36 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f() { 'use strict'; return arguments; }
|
|
f();
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 6
|
|
bytecodes: [
|
|
B(CreateUnmappedArguments),
|
|
B(Star), R(0),
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 29 S> */ B(Nop),
|
|
/* 47 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a) { return arguments[0]; }
|
|
f();
|
|
"
|
|
frame size: 2
|
|
parameter count: 2
|
|
bytecode array length: 17
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(1),
|
|
B(PushContext), R(1),
|
|
B(Ldar), R(arg0),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 16 S> */ B(LdaZero),
|
|
/* 32 E> */ B(LdaKeyedProperty), R(0), U8(2),
|
|
/* 37 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a, b, c) { return arguments; }
|
|
f();
|
|
"
|
|
frame size: 2
|
|
parameter count: 4
|
|
bytecode array length: 22
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(3),
|
|
B(PushContext), R(1),
|
|
B(Ldar), R(arg0),
|
|
B(StaCurrentContextSlot), U8(6),
|
|
B(Ldar), R(arg1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(Ldar), R(arg2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 22 S> */ B(Nop),
|
|
/* 40 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a, b, c) { 'use strict'; return arguments; }
|
|
f();
|
|
"
|
|
frame size: 1
|
|
parameter count: 4
|
|
bytecode array length: 6
|
|
bytecodes: [
|
|
B(CreateUnmappedArguments),
|
|
B(Star), R(0),
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 36 S> */ B(Nop),
|
|
/* 54 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|