e43fbde72b
The original peephole optimizer logic in the BytecodeArrayBuilder did not respect source positions as it was written before there were bytecode source positions. This led to some minor differences to FCG and was problematic when combined with pending bytecode optimizations. This change makes the new peephole optimizer fully respect source positions. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/1998203002 Cr-Commit-Position: refs/heads/master@{#36439}
464 lines
12 KiB
Plaintext
464 lines
12 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
pool type: mixed
|
|
execute: yes
|
|
wrap: yes
|
|
|
|
---
|
|
snippet: "
|
|
return { };
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 8
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(35),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
return { name: 'string', val: 9.2 };
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 8
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(0),
|
|
/* 71 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; return { name: 'string', val: a };
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 20
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(1),
|
|
/* 75 E> */ B(Ldar), R(0),
|
|
B(StoreICSloppy), R(1), U8(1), U8(1),
|
|
B(Ldar), R(1),
|
|
/* 80 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; return { val: a, val: a + 1 };
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 26
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(1),
|
|
/* 59 E> */ B(Ldar), R(0),
|
|
/* 67 E> */ B(Star), R(2),
|
|
B(LdaSmi), U8(1),
|
|
B(Add), R(2),
|
|
B(StoreICSloppy), R(1), U8(1), U8(1),
|
|
B(Ldar), R(1),
|
|
/* 76 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
return { func: function() { } };
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 17
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(0),
|
|
B(CreateClosure), U8(1), U8(0),
|
|
B(StoreICSloppy), R(0), U8(2), U8(1),
|
|
B(Ldar), R(0),
|
|
/* 67 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
return { func(a) { return a; } };
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 17
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(0),
|
|
B(CreateClosure), U8(1), U8(0),
|
|
B(StoreICSloppy), R(0), U8(2), U8(1),
|
|
B(Ldar), R(0),
|
|
/* 68 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
return { get a() { return 2; } };
|
|
"
|
|
frame size: 6
|
|
parameter count: 1
|
|
bytecode array length: 33
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(0),
|
|
B(Mov), R(0), R(1),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(2),
|
|
B(CreateClosure), U8(2), U8(0),
|
|
B(Star), R(3),
|
|
B(LdaNull),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
|
|
B(Ldar), R(0),
|
|
/* 68 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
return { get a() { return this.x; }, set a(val) { this.x = val } };
|
|
"
|
|
frame size: 6
|
|
parameter count: 1
|
|
bytecode array length: 35
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(0),
|
|
B(Mov), R(0), R(1),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(2),
|
|
B(CreateClosure), U8(2), U8(0),
|
|
B(Star), R(3),
|
|
B(CreateClosure), U8(3), U8(0),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
|
|
B(Ldar), R(0),
|
|
/* 102 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
return { set b(val) { this.y = val } };
|
|
"
|
|
frame size: 6
|
|
parameter count: 1
|
|
bytecode array length: 33
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(0),
|
|
B(Mov), R(0), R(1),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(2),
|
|
B(LdaNull),
|
|
B(Star), R(3),
|
|
B(CreateClosure), U8(2), U8(0),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
|
|
B(Ldar), R(0),
|
|
/* 74 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 1; return { 1: a };
|
|
"
|
|
frame size: 6
|
|
parameter count: 1
|
|
bytecode array length: 33
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), U8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
|
|
B(Star), R(1),
|
|
B(Mov), R(1), R(2),
|
|
B(LdaSmi), U8(1),
|
|
B(Star), R(3),
|
|
/* 57 E> */ B(Ldar), R(0),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
|
|
B(Ldar), R(1),
|
|
/* 62 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
return { __proto__: null };
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 21
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(35),
|
|
B(Star), R(0),
|
|
B(Mov), R(0), R(1),
|
|
B(LdaNull),
|
|
B(Star), R(2),
|
|
B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(1), U8(2),
|
|
B(Ldar), R(0),
|
|
/* 62 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 'test'; return { [a]: 1 };
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 37
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(0),
|
|
/* 50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(35),
|
|
B(Star), R(1),
|
|
B(Mov), R(1), R(2),
|
|
/* 60 E> */ B(Ldar), R(0),
|
|
B(ToName),
|
|
B(Star), R(3),
|
|
B(LdaSmi), U8(1),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(LdaZero),
|
|
B(Star), R(6),
|
|
B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
|
|
B(Ldar), R(1),
|
|
/* 69 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 'test'; return { val: a, [a]: 1 };
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 43
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(0),
|
|
/* 50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(1),
|
|
B(Star), R(1),
|
|
/* 64 E> */ B(Ldar), R(0),
|
|
B(StoreICSloppy), R(1), U8(2), U8(1),
|
|
B(Mov), R(1), R(2),
|
|
/* 68 E> */ B(Ldar), R(0),
|
|
B(ToName),
|
|
B(Star), R(3),
|
|
B(LdaSmi), U8(1),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(LdaZero),
|
|
B(Star), R(6),
|
|
B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
|
|
B(Ldar), R(1),
|
|
/* 77 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var a = 'test'; return { [a]: 1, __proto__: {} };
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 53
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(0),
|
|
/* 50 S> */ B(CreateObjectLiteral), U8(1), U8(1), U8(35),
|
|
B(Star), R(1),
|
|
B(Mov), R(1), R(2),
|
|
/* 60 E> */ B(Ldar), R(0),
|
|
B(ToName),
|
|
B(Star), R(3),
|
|
B(LdaSmi), U8(1),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(LdaZero),
|
|
B(Star), R(6),
|
|
B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
|
|
B(Mov), R(1), R(2),
|
|
B(CreateObjectLiteral), U8(1), U8(0), U8(35),
|
|
B(Star), R(4),
|
|
B(Star), R(3),
|
|
B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(2), U8(2),
|
|
B(Ldar), R(1),
|
|
/* 84 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var n = 'name'; return { [n]: 'val', get a() { }, set a(b) {} };
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 77
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(0),
|
|
/* 50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(35),
|
|
B(Star), R(1),
|
|
B(Mov), R(1), R(2),
|
|
/* 60 E> */ B(Ldar), R(0),
|
|
B(ToName),
|
|
B(Star), R(3),
|
|
B(LdaConstant), U8(2),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(LdaZero),
|
|
B(Star), R(6),
|
|
B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
|
|
B(Mov), R(1), R(2),
|
|
B(LdaConstant), U8(3),
|
|
B(Star), R(3),
|
|
B(CreateClosure), U8(4), U8(0),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineGetterPropertyUnchecked), R(2), U8(4),
|
|
B(Mov), R(1), R(2),
|
|
B(LdaConstant), U8(3),
|
|
B(Star), R(3),
|
|
B(CreateClosure), U8(5), U8(0),
|
|
B(Star), R(4),
|
|
B(LdaZero),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineSetterPropertyUnchecked), R(2), U8(4),
|
|
B(Ldar), R(1),
|
|
/* 99 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::FIXED_ARRAY_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
InstanceType::SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|