a2fcdc7cc8
Instead of counting profiler ticks on the shared function info (which is shared between native contexts), count them on the feedback vector (which is not). This allows us to continue pushing optimization decisions off the SFI, onto the feedback vector. Note that a side-effect of this is that ICs don't have to walk the stack to reset profiler ticks, as they can access the feedback vector directly from their feedback nexus. Change-Id: I232ae9e759fca75cd89d393148a4ff42caa2646f Reviewed-on: https://chromium-review.googlesource.com/544888 Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46411}
262 lines
8.0 KiB
Plaintext
262 lines
8.0 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: yes
|
|
|
|
---
|
|
snippet: "
|
|
class Person {
|
|
constructor(name) { this.name = name; }
|
|
speak() { console.log(this.name + ' is speaking.'); }
|
|
}
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 67
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateClosure), U8(0), U8(4), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(34),
|
|
B(Star), R(5),
|
|
B(Wide), B(LdaSmi), I16(148),
|
|
B(Star), R(6),
|
|
B(Mov), R(2), R(4),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
|
|
B(Star), R(3),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(5),
|
|
B(CreateClosure), U8(2), U8(5), U8(2),
|
|
B(Star), R(6),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(7),
|
|
B(Ldar), R(6),
|
|
B(StaDataPropertyInLiteral), R(3), R(5), U8(1), U8(6),
|
|
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
B(LdaUndefined),
|
|
/* 149 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["speak"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
class person {
|
|
constructor(name) { this.name = name; }
|
|
speak() { console.log(this.name + ' is speaking.'); }
|
|
}
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 67
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateClosure), U8(0), U8(4), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(34),
|
|
B(Star), R(5),
|
|
B(Wide), B(LdaSmi), I16(148),
|
|
B(Star), R(6),
|
|
B(Mov), R(2), R(4),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
|
|
B(Star), R(3),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(5),
|
|
B(CreateClosure), U8(2), U8(5), U8(2),
|
|
B(Star), R(6),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(7),
|
|
B(Ldar), R(6),
|
|
B(StaDataPropertyInLiteral), R(3), R(5), U8(1), U8(6),
|
|
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
B(LdaUndefined),
|
|
/* 149 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["speak"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var n0 = 'a';
|
|
var n1 = 'b';
|
|
class N {
|
|
[n0]() { return n0; }
|
|
static [n1]() { return n1; }
|
|
}
|
|
"
|
|
frame size: 9
|
|
parameter count: 1
|
|
bytecode array length: 106
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(2),
|
|
B(PushContext), R(2),
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 43 S> */ B(LdaConstant), U8(0),
|
|
/* 43 E> */ B(StaCurrentContextSlot), U8(4),
|
|
/* 57 S> */ B(LdaConstant), U8(1),
|
|
/* 57 E> */ B(StaCurrentContextSlot), U8(5),
|
|
B(CreateClosure), U8(2), U8(4), U8(2),
|
|
B(Star), R(3),
|
|
B(LdaTheHole),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(62),
|
|
B(Star), R(6),
|
|
B(Wide), B(LdaSmi), I16(128),
|
|
B(Star), R(7),
|
|
B(Mov), R(3), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
|
|
B(Star), R(4),
|
|
B(LdaImmutableCurrentContextSlot), U8(4),
|
|
/* 75 E> */ B(ToName), R(6),
|
|
B(CreateClosure), U8(3), U8(5), U8(2),
|
|
B(Star), R(7),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(8),
|
|
B(Ldar), R(7),
|
|
B(StaDataPropertyInLiteral), R(4), R(6), U8(3), U8(7),
|
|
B(LdaImmutableCurrentContextSlot), U8(5),
|
|
/* 106 E> */ B(ToName), R(6),
|
|
B(LdaConstant), U8(4),
|
|
B(TestEqualStrictNoFeedback), R(6),
|
|
B(Mov), R(3), R(5),
|
|
B(JumpIfFalse), U8(7),
|
|
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
|
|
B(CreateClosure), U8(5), U8(6), U8(2),
|
|
B(StaDataPropertyInLiteral), R(5), R(6), U8(3), U8(9),
|
|
B(CallRuntime), U16(Runtime::kInstallClassNameAccessorWithCheck), R(3), U8(1),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
B(LdaUndefined),
|
|
/* 129 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var count = 0;
|
|
class C { constructor() { count++; }}
|
|
return new C();
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 56
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(1),
|
|
B(PushContext), R(2),
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 46 S> */ B(LdaZero),
|
|
/* 46 E> */ B(StaCurrentContextSlot), U8(4),
|
|
B(CreateClosure), U8(0), U8(4), U8(2),
|
|
B(Star), R(3),
|
|
B(LdaTheHole),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(49),
|
|
B(Star), R(6),
|
|
B(LdaSmi), I8(86),
|
|
B(Star), R(7),
|
|
B(Mov), R(3), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
|
|
B(Star), R(4),
|
|
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
/* 87 S> */ B(Nop),
|
|
/* 94 E> */ B(Construct), R(1), R(0), U8(0), U8(5),
|
|
/* 103 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
(class {})
|
|
class E { static name () {}}
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 92
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 34 S> */ B(CreateClosure), U8(0), U8(4), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(35),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(43),
|
|
B(Star), R(6),
|
|
B(Mov), R(2), R(4),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
|
|
B(Star), R(3),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
|
|
B(CreateClosure), U8(1), U8(5), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(45),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(73),
|
|
B(Star), R(6),
|
|
B(Mov), R(2), R(4),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
|
|
B(Star), R(3),
|
|
B(LdaConstant), U8(2),
|
|
B(Star), R(5),
|
|
B(CreateClosure), U8(3), U8(6), U8(2),
|
|
B(Star), R(6),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(7),
|
|
B(Ldar), R(6),
|
|
B(StaDataPropertyInLiteral), R(4), R(5), U8(1), U8(7),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
B(LdaUndefined),
|
|
/* 74 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["name"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|