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}
500 lines
8.5 KiB
Plaintext
500 lines
8.5 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: yes
|
|
|
|
---
|
|
snippet: "
|
|
var x = 0; return x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 6
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaZero),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 55 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 0; return x + 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 9
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaZero),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(AddSmi), I8(3), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 0; return 3 + x;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 14
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaZero),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(LdaSmi), I8(3),
|
|
B(Star), R(1),
|
|
B(Ldar), R(0),
|
|
/* 54 E> */ B(Add), R(1), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 0; return x - 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 9
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaZero),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(SubSmi), I8(3), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 0; return 3 - x;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 14
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaZero),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(LdaSmi), I8(3),
|
|
B(Star), R(1),
|
|
B(Ldar), R(0),
|
|
/* 54 E> */ B(Sub), R(1), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 4; return x * 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(4),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(MulSmi), I8(3), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 4; return 3 * x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(4),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(MulSmi), I8(3), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 4; return x / 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(4),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(DivSmi), I8(3), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 4; return 3 / x;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 15
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(4),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(LdaSmi), I8(3),
|
|
B(Star), R(1),
|
|
B(Ldar), R(0),
|
|
/* 54 E> */ B(Div), R(1), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 4; return x % 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(4),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(ModSmi), I8(3), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 4; return 3 % x;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 15
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(4),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(LdaSmi), I8(3),
|
|
B(Star), R(1),
|
|
B(Ldar), R(0),
|
|
/* 54 E> */ B(Mod), R(1), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 1; return x | 2;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(BitwiseOrSmi), I8(2), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 1; return 2 | x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(BitwiseOrSmi), I8(2), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 1; return x ^ 2;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(BitwiseXorSmi), I8(2), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 1; return 2 ^ x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(BitwiseXorSmi), I8(2), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 1; return x & 2;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(BitwiseAndSmi), I8(2), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 1; return 2 & x;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(1),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(Nop),
|
|
/* 54 E> */ B(BitwiseAndSmi), I8(2), U8(2),
|
|
/* 59 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 10; return x << 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(10),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(Nop),
|
|
/* 55 E> */ B(ShiftLeftSmi), I8(3), U8(2),
|
|
/* 61 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 10; return 3 << x;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 15
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(10),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(LdaSmi), I8(3),
|
|
B(Star), R(1),
|
|
B(Ldar), R(0),
|
|
/* 55 E> */ B(ShiftLeft), R(1), U8(2),
|
|
/* 61 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 10; return x >> 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(10),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(Nop),
|
|
/* 55 E> */ B(ShiftRightSmi), I8(3), U8(2),
|
|
/* 61 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 10; return 3 >> x;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 15
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(10),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(LdaSmi), I8(3),
|
|
B(Star), R(1),
|
|
B(Ldar), R(0),
|
|
/* 55 E> */ B(ShiftRight), R(1), U8(2),
|
|
/* 61 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 10; return x >>> 3;
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(10),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(Nop),
|
|
/* 55 E> */ B(ShiftRightLogicalSmi), I8(3), U8(2),
|
|
/* 62 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 10; return 3 >>> x;
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 15
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaSmi), I8(10),
|
|
B(Star), R(0),
|
|
/* 46 S> */ B(LdaSmi), I8(3),
|
|
B(Star), R(1),
|
|
B(Ldar), R(0),
|
|
/* 55 E> */ B(ShiftRightLogical), R(1), U8(2),
|
|
/* 62 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
var x = 0; return (x, 3);
|
|
"
|
|
frame size: 1
|
|
parameter count: 1
|
|
bytecode array length: 7
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 42 S> */ B(LdaZero),
|
|
B(Star), R(0),
|
|
/* 45 S> */ B(LdaSmi), I8(3),
|
|
/* 60 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
]
|
|
handlers: [
|
|
]
|
|
|