v8/test/cctest/interpreter/bytecode_expectations/PropertyLoadStoreOneShot.golden
Santiago Aboy Solanes a447a44f31 [interpreter] Make IterationBody StackChecks implicit within JumpLoop
Since now the IterationBody StackChecks are implicit within JumpLoops,
we are able to eagerly deopt in them. If we do that, whenever we advance
to the next bytecode we don't have to advance to the next literal
bytecode, but instead "advance" in the sense of doing the JumpLoop.

Adding tests that test this advancing for wide and extra wide JumpLoops.

Also, marking JumpLoop as needing source positions since now it has
the ability of causing an interrupt.

Bug: v8:10149, v8:9960
Fixes: v8:10149
Change-Id: Ib0d9efdfb379e0dfbba7a7f67cba9262668813b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064226
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66809}
2020-03-20 13:22:41 +00:00

378 lines
11 KiB
Plaintext

#
# Autogenerated by generate-bytecode-expectations.
#
---
wrap: no
top level: yes
oneshot opt: yes
---
snippet: "
l = {
'a': 1,
'b': 2
};
v = l['a'] + l['b'];
l['b'] = 7;
l['a'] = l['b'];
"
frame size: 4
parameter count: 1
bytecode array length: 76
bytecodes: [
/* 7 S> */ B(LdaConstant), U8(0),
B(Star), R(2),
B(LdaSmi), I8(41),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kCreateObjectLiteralWithoutAllocationSite), R(2), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
/* 60 S> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(1),
/* 65 E> */ B(LdaNamedPropertyNoFeedback), R(1), U8(2),
B(Star), R(1),
/* 73 E> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(2),
/* 74 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(3),
/* 71 E> */ B(Add), R(1), U8(2),
/* 62 E> */ B(StaGlobal), U8(4), U8(5),
/* 87 S> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(1),
B(LdaSmi), I8(7),
/* 94 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(3), U8(0),
/* 105 S> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(1),
/* 114 E> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(2),
/* 115 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(3),
B(Star), R(2),
/* 112 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
B(Mov), R(2), R(0),
B(Ldar), R(0),
/* 128 S> */ B(Return),
]
constant pool: [
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["v"],
]
handlers: [
]
---
snippet: "
l = {
'a': 1.1,
'b': 2.2
};
for (i = 0; i < 5; ++i) {
l['a'] = l['a'] + l['b'];
l['b'] = l['a'] + l['b'];
}
"
frame size: 4
parameter count: 1
bytecode array length: 118
bytecodes: [
/* 7 S> */ B(LdaConstant), U8(0),
B(Star), R(2),
B(LdaSmi), I8(41),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kCreateObjectLiteralWithoutAllocationSite), R(2), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
B(LdaUndefined),
B(Star), R(0),
/* 68 S> */ B(LdaZero),
/* 70 E> */ B(StaGlobal), U8(2), U8(2),
/* 77 S> */ B(LdaGlobal), U8(2), U8(4),
B(Star), R(1),
B(LdaSmi), I8(5),
/* 77 E> */ B(TestLessThan), R(1), U8(6),
B(JumpIfFalse), U8(82),
/* 97 S> */ B(LdaGlobal), U8(1), U8(7),
B(Star), R(1),
/* 106 E> */ B(LdaGlobal), U8(1), U8(7),
B(Star), R(2),
/* 107 E> */ B(LdaNamedProperty), R(2), U8(3), U8(10),
B(Star), R(2),
/* 115 E> */ B(LdaGlobal), U8(1), U8(7),
B(Star), R(3),
/* 116 E> */ B(LdaNamedProperty), R(3), U8(4), U8(12),
/* 113 E> */ B(Add), R(2), U8(9),
/* 104 E> */ B(StaNamedProperty), R(1), U8(3), U8(14),
/* 131 S> */ B(LdaGlobal), U8(1), U8(7),
B(Star), R(1),
/* 140 E> */ B(LdaGlobal), U8(1), U8(7),
B(Star), R(2),
/* 141 E> */ B(LdaNamedProperty), R(2), U8(3), U8(10),
B(Star), R(2),
/* 149 E> */ B(LdaGlobal), U8(1), U8(7),
B(Star), R(3),
/* 150 E> */ B(LdaNamedProperty), R(3), U8(4), U8(12),
/* 147 E> */ B(Add), R(2), U8(16),
B(Star), R(2),
/* 138 E> */ B(StaNamedProperty), R(1), U8(4), U8(17),
B(Mov), R(2), R(0),
/* 84 S> */ B(LdaGlobal), U8(2), U8(4),
B(Inc), U8(19),
/* 84 E> */ B(StaGlobal), U8(2), U8(2),
/* 63 E> */ B(JumpLoop), U8(89), I8(0),
B(Ldar), R(0),
/* 171 S> */ B(Return),
]
constant pool: [
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["i"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
]
handlers: [
]
---
snippet: "
l = {
'a': 1.1,
'b': 2.2
};
while (s > 0) {
l['a'] = l['a'] - l['b'];
l['b'] = l['b'] - l['a'];
}
"
frame size: 4
parameter count: 1
bytecode array length: 107
bytecodes: [
/* 7 S> */ B(LdaConstant), U8(0),
B(Star), R(2),
B(LdaSmi), I8(41),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kCreateObjectLiteralWithoutAllocationSite), R(2), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
B(LdaUndefined),
B(Star), R(0),
/* 72 S> */ B(LdaGlobal), U8(2), U8(2),
B(Star), R(1),
B(LdaZero),
/* 72 E> */ B(TestGreaterThan), R(1), U8(4),
B(JumpIfFalse), U8(76),
/* 87 S> */ B(LdaGlobal), U8(1), U8(5),
B(Star), R(1),
/* 97 E> */ B(LdaGlobal), U8(1), U8(5),
B(Star), R(2),
/* 98 E> */ B(LdaNamedProperty), R(2), U8(3), U8(8),
B(Star), R(2),
/* 106 E> */ B(LdaGlobal), U8(1), U8(5),
B(Star), R(3),
/* 107 E> */ B(LdaNamedProperty), R(3), U8(4), U8(10),
/* 104 E> */ B(Sub), R(2), U8(7),
/* 95 E> */ B(StaNamedProperty), R(1), U8(3), U8(12),
/* 122 S> */ B(LdaGlobal), U8(1), U8(5),
B(Star), R(1),
/* 132 E> */ B(LdaGlobal), U8(1), U8(5),
B(Star), R(2),
/* 133 E> */ B(LdaNamedProperty), R(2), U8(4), U8(10),
B(Star), R(2),
/* 141 E> */ B(LdaGlobal), U8(1), U8(5),
B(Star), R(3),
/* 142 E> */ B(LdaNamedProperty), R(3), U8(3), U8(8),
/* 139 E> */ B(Sub), R(2), U8(14),
B(Star), R(2),
/* 130 E> */ B(StaNamedProperty), R(1), U8(4), U8(15),
B(Mov), R(2), R(0),
B(Ldar), R(2),
/* 63 E> */ B(JumpLoop), U8(82), I8(0),
B(Ldar), R(0),
/* 163 S> */ B(Return),
]
constant pool: [
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["s"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
]
handlers: [
]
---
snippet: "
l = {
'a': 1.1,
'b': 2.2
};
s = 10;
do {
l['a'] = l['b'] - l['a'];
} while (s < 10);
"
frame size: 4
parameter count: 1
bytecode array length: 79
bytecodes: [
/* 7 S> */ B(LdaConstant), U8(0),
B(Star), R(2),
B(LdaSmi), I8(41),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kCreateObjectLiteralWithoutAllocationSite), R(2), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
/* 63 S> */ B(LdaSmi), I8(10),
/* 65 E> */ B(StaGlobal), U8(2), U8(2),
B(LdaUndefined),
B(Star), R(0),
/* 90 S> */ B(LdaGlobal), U8(1), U8(4),
B(Star), R(1),
/* 99 E> */ B(LdaGlobal), U8(1), U8(4),
B(Star), R(2),
/* 100 E> */ B(LdaNamedProperty), R(2), U8(3), U8(7),
B(Star), R(2),
/* 108 E> */ B(LdaGlobal), U8(1), U8(4),
B(Star), R(3),
/* 109 E> */ B(LdaNamedProperty), R(3), U8(4), U8(9),
/* 106 E> */ B(Sub), R(2), U8(6),
B(Star), R(2),
/* 97 E> */ B(StaNamedProperty), R(1), U8(4), U8(11),
B(Mov), R(2), R(0),
/* 133 S> */ B(LdaGlobal), U8(2), U8(13),
B(Star), R(1),
B(LdaSmi), I8(10),
/* 133 E> */ B(TestLessThan), R(1), U8(15),
B(JumpIfFalse), U8(5),
/* 77 E> */ B(JumpLoop), U8(49), I8(0),
B(Ldar), R(0),
/* 146 S> */ B(Return),
]
constant pool: [
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["s"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
]
handlers: [
]
---
snippet: "
l = {
'c': 1.1,
'd': 2.2
};
if (l['c'] < 3) {
l['c'] = 3;
} else {
l['d'] = 3;
}
"
frame size: 4
parameter count: 1
bytecode array length: 74
bytecodes: [
/* 7 S> */ B(LdaConstant), U8(0),
B(Star), R(2),
B(LdaSmi), I8(41),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kCreateObjectLiteralWithoutAllocationSite), R(2), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
/* 63 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
/* 68 E> */ B(LdaNamedPropertyNoFeedback), R(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
/* 74 E> */ B(TestLessThan), R(1), U8(4),
B(JumpIfFalse), U8(22),
/* 89 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
B(Star), R(2),
/* 96 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
B(Mov), R(2), R(0),
B(Ldar), R(2),
B(Jump), U8(20),
/* 124 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
B(Star), R(2),
/* 131 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(3), U8(0),
B(Mov), R(2), R(0),
B(Ldar), R(2),
B(Ldar), R(0),
/* 150 S> */ B(Return),
]
constant pool: [
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["c"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["d"],
]
handlers: [
]
---
snippet: "
a = [1.1, [2.2, 4.5]];
"
frame size: 5
parameter count: 1
bytecode array length: 19
bytecodes: [
/* 7 S> */ B(LdaConstant), U8(0),
B(Star), R(3),
B(LdaSmi), I8(4),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
B(Star), R(0),
/* 36 S> */ B(Return),
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
]
handlers: [
]
---
snippet: "
b = [];
"
frame size: 5
parameter count: 1
bytecode array length: 19
bytecodes: [
/* 7 S> */ B(LdaConstant), U8(0),
B(Star), R(3),
B(LdaSmi), I8(37),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
B(Star), R(0),
/* 21 S> */ B(Return),
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
]
handlers: [
]