496864f8af
This relands commit d3e9aade0f
. The original CL was reverted speculatively but didn't cause the buildbot failure.
Original change's description:
> [Interpreter] Move BinaryOp Smi transformation into BytecodeGenerator.
>
> Perform the transformation to <BinaryOp>Smi for Binary ops which take Smi
> literals in the BytecodeGenerator. This enables us to perform the
> transformation for literals on either side for commutative operations, and
> Avoids having to do the check on every bytecode in the peephole optimizer.
>
> In the process, adds Smi bytecode variants for all binary operations, adding
> - MulSmi
> - DivSmi
> - ModSmi
> - BitwiseXorSmi
> - ShiftRightLogical
>
> BUG=v8:6194
>
> Change-Id: If1484252f5385c16957004b9cac8bfbb1f209219
> Reviewed-on: https://chromium-review.googlesource.com/466246
> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#44477}
TBR=rmcilroy@chromium.org,machenbach@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,mythria@chromium.org,v8-reviews@googlegroups.com,ishell@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=v8:6194
Change-Id: I2ccaefa1ce58d3885f5c2648755985c06f25c1d8
Reviewed-on: https://chromium-review.googlesource.com/472746
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44511}
181 lines
3.2 KiB
Plaintext
181 lines
3.2 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: yes
|
|
|
|
---
|
|
snippet: "
|
|
var x = 0;
|
|
while (x != 10) {
|
|
x = x + 10;
|
|
}
|
|
return x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 25
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaZero),
|
|
B(Star), R(0),
|
|
/* 54 S> */ B(LdaSmi), I8(10),
|
|
/* 54 E> */ B(TestEqual), R(0), U8(2),
|
|
B(JumpIfTrue), U8(13),
|
|
/* 45 E> */ B(StackCheck),
|
|
/* 65 S> */ B(Ldar), R(0),
|
|
/* 71 E> */ B(AddSmi), I8(10), U8(3),
|
|
B(Star), R(0),
|
|
B(JumpLoop), U8(15), I8(0),
|
|
/* 79 S> */ B(Ldar), R(0),
|
|
/* 89 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = false;
|
|
do {
|
|
x = !x;
|
|
} while(x == false);
|
|
return x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 22
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaFalse),
|
|
B(Star), R(0),
|
|
/* 49 E> */ B(StackCheck),
|
|
/* 56 S> */ B(Ldar), R(0),
|
|
B(ToBooleanLogicalNot),
|
|
B(Star), R(0),
|
|
/* 74 S> */ B(LdaFalse),
|
|
/* 74 E> */ B(TestEqual), R(0), U8(2),
|
|
B(JumpIfFalse), U8(5),
|
|
B(JumpLoop), U8(12), I8(0),
|
|
/* 85 S> */ B(Ldar), R(0),
|
|
/* 95 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 101;
|
|
return void(x * 3);
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 11
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(101),
|
|
B(Star), R(0),
|
|
/* 47 S> */ B(Nop),
|
|
/* 61 E> */ B(MulSmi), I8(3), U8(2),
|
|
B(LdaUndefined),
|
|
/* 67 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 1234;
|
|
var y = void (x * x - 1);
|
|
return y;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 19
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(Wide), B(LdaSmi), I16(1234),
|
|
B(Star), R(0),
|
|
/* 56 S> */ B(Nop),
|
|
/* 64 E> */ B(Mul), R(0), U8(2),
|
|
/* 68 E> */ B(SubSmi), I8(1), U8(3),
|
|
B(LdaUndefined),
|
|
B(Star), R(1),
|
|
/* 74 S> */ B(Nop),
|
|
/* 84 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 13;
|
|
return ~x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(13),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(Nop),
|
|
/* 53 E> */ B(BitwiseXorSmi), I8(-1), U8(2),
|
|
/* 57 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 13;
|
|
return +x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(13),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(Nop),
|
|
/* 53 E> */ B(MulSmi), I8(1), U8(2),
|
|
/* 57 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 13;
|
|
return -x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(13),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(Nop),
|
|
/* 53 E> */ B(MulSmi), I8(-1), U8(2),
|
|
/* 57 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|