Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(596)

Unified Diff: test/unittests/interpreter/bytecode-array-builder-unittest.cc

Issue 2111923002: [interpreter] Introduce binary op bytecodes for Smi operand. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/unittests/interpreter/bytecode-array-builder-unittest.cc
diff --git a/test/unittests/interpreter/bytecode-array-builder-unittest.cc b/test/unittests/interpreter/bytecode-array-builder-unittest.cc
index 7bbef45ad34c6d6f429a799f0267063b24ffc8cf..d518db37456fdb68bf2731a616c92f234c499902 100644
--- a/test/unittests/interpreter/bytecode-array-builder-unittest.cc
+++ b/test/unittests/interpreter/bytecode-array-builder-unittest.cc
@@ -42,6 +42,8 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
builder.LoadLiteral(Smi::FromInt(0))
.StoreAccumulatorInRegister(reg)
.LoadLiteral(Smi::FromInt(8))
+ .CompareOperation(Token::Value::NE, reg) // Prevent peephole optimization
+ // LdaSmi, Star -> LdrSmi.
.StoreAccumulatorInRegister(reg)
.LoadLiteral(Smi::FromInt(10000000))
.StoreAccumulatorInRegister(reg)
@@ -136,6 +138,20 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
.BinaryOperation(Token::Value::SAR, reg)
.BinaryOperation(Token::Value::SHR, reg);
+ // Emit peephole optimizations of LdaSmi followed by binary operation.
+ builder.LoadLiteral(Smi::FromInt(1))
+ .BinaryOperation(Token::Value::ADD, reg)
+ .LoadLiteral(Smi::FromInt(2))
+ .BinaryOperation(Token::Value::SUB, reg)
+ .LoadLiteral(Smi::FromInt(3))
+ .BinaryOperation(Token::Value::BIT_AND, reg)
+ .LoadLiteral(Smi::FromInt(4))
+ .BinaryOperation(Token::Value::BIT_OR, reg)
+ .LoadLiteral(Smi::FromInt(5))
+ .BinaryOperation(Token::Value::SHL, reg)
+ .LoadLiteral(Smi::FromInt(6))
+ .BinaryOperation(Token::Value::SAR, reg);
+
// Emit count operatior invocations
builder.CountOperation(Token::Value::ADD).CountOperation(Token::Value::SUB);
@@ -399,6 +415,12 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
scorecard[Bytecodes::ToByte(Bytecode::kJumpIfFalse)] = 1;
scorecard[Bytecodes::ToByte(Bytecode::kJumpIfTrueConstant)] = 1;
scorecard[Bytecodes::ToByte(Bytecode::kJumpIfFalseConstant)] = 1;
+ scorecard[Bytecodes::ToByte(Bytecode::kAddSmi)] = 1;
+ scorecard[Bytecodes::ToByte(Bytecode::kSubSmi)] = 1;
+ scorecard[Bytecodes::ToByte(Bytecode::kBitwiseAndSmi)] = 1;
+ scorecard[Bytecodes::ToByte(Bytecode::kBitwiseOrSmi)] = 1;
+ scorecard[Bytecodes::ToByte(Bytecode::kShiftLeftSmi)] = 1;
+ scorecard[Bytecodes::ToByte(Bytecode::kShiftRightSmi)] = 1;
}
// Check return occurs at the end and only once in the BytecodeArray.

Powered by Google App Engine
This is Rietveld 408576698