Index: runtime/vm/intermediate_language_dbc.cc |
diff --git a/runtime/vm/intermediate_language_dbc.cc b/runtime/vm/intermediate_language_dbc.cc |
index 06c483dec102ccc091e35d5e0988ac27a1063eb0..b3f5d4a42f03966f039b5581803af68b7d615a67 100644 |
--- a/runtime/vm/intermediate_language_dbc.cc |
+++ b/runtime/vm/intermediate_language_dbc.cc |
@@ -7,8 +7,8 @@ |
#include "vm/intermediate_language.h" |
-#include "vm/cpu.h" |
#include "vm/compiler.h" |
+#include "vm/cpu.h" |
#include "vm/dart_entry.h" |
#include "vm/flow_graph.h" |
#include "vm/flow_graph_compiler.h" |
@@ -118,7 +118,6 @@ static LocationSummary* CreateLocationSummary( |
return locs; |
} |
- |
#define DEFINE_MAKE_LOCATION_SUMMARY(Name, ...) \ |
LocationSummary* Name##Instr::MakeLocationSummary(Zone* zone, bool opt) \ |
const { \ |
@@ -179,11 +178,9 @@ FOR_EACH_UNREACHABLE_INSTRUCTION(DEFINE_UNREACHABLE) |
#undef DEFINE_UNREACHABLE |
- |
// Only used in AOT compilation. |
DEFINE_UNIMPLEMENTED_EMIT_BRANCH_CODE(CheckedSmiComparison) |
- |
EMIT_NATIVE_CODE(InstanceOf, |
3, |
Location::SameAsFirstInput(), |
@@ -210,13 +207,11 @@ EMIT_NATIVE_CODE(InstanceOf, |
} |
} |
- |
DEFINE_MAKE_LOCATION_SUMMARY(AssertAssignable, |
3, |
Location::SameAsFirstInput(), |
LocationSummary::kCall); |
- |
EMIT_NATIVE_CODE(AssertBoolean, |
1, |
Location::SameAsFirstInput(), |
@@ -233,7 +228,6 @@ EMIT_NATIVE_CODE(AssertBoolean, |
} |
} |
- |
EMIT_NATIVE_CODE(PolymorphicInstanceCall, |
0, |
Location::RegisterLocation(0), |
@@ -282,12 +276,10 @@ EMIT_NATIVE_CODE(PolymorphicInstanceCall, |
__ PopLocal(locs()->out(0).reg()); |
} |
- |
EMIT_NATIVE_CODE(Stop, 0) { |
__ Stop(message()); |
} |
- |
EMIT_NATIVE_CODE(CheckStackOverflow, |
0, |
Location::NoLocation(), |
@@ -302,21 +294,18 @@ EMIT_NATIVE_CODE(CheckStackOverflow, |
compiler->RecordAfterCall(this, FlowGraphCompiler::kNoResult); |
} |
- |
EMIT_NATIVE_CODE(PushArgument, 1) { |
if (compiler->is_optimizing()) { |
__ Push(locs()->in(0).reg()); |
} |
} |
- |
EMIT_NATIVE_CODE(LoadLocal, 0) { |
ASSERT(!compiler->is_optimizing()); |
ASSERT(local().index() != 0); |
__ Push((local().index() > 0) ? (-local().index()) : (-local().index() - 1)); |
} |
- |
EMIT_NATIVE_CODE(StoreLocal, 0) { |
ASSERT(!compiler->is_optimizing()); |
ASSERT(local().index() != 0); |
@@ -329,7 +318,6 @@ EMIT_NATIVE_CODE(StoreLocal, 0) { |
} |
} |
- |
EMIT_NATIVE_CODE(LoadClassId, 1, Location::RequiresRegister()) { |
if (compiler->is_optimizing()) { |
__ LoadClassId(locs()->out(0).reg(), locs()->in(0).reg()); |
@@ -338,7 +326,6 @@ EMIT_NATIVE_CODE(LoadClassId, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(Constant, 0, Location::RequiresRegister()) { |
if (compiler->is_optimizing()) { |
if (locs()->out(0).IsRegister()) { |
@@ -349,7 +336,6 @@ EMIT_NATIVE_CODE(Constant, 0, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(UnboxedConstant, 0, Location::RequiresRegister()) { |
// The register allocator drops constant definitions that have no uses. |
if (locs()->out(0).IsInvalid()) { |
@@ -368,7 +354,6 @@ EMIT_NATIVE_CODE(UnboxedConstant, 0, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(Return, 1) { |
if (compiler->is_optimizing()) { |
__ Return(locs()->in(0).reg()); |
@@ -377,7 +362,6 @@ EMIT_NATIVE_CODE(Return, 1) { |
} |
} |
- |
LocationSummary* StoreStaticFieldInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -393,7 +377,6 @@ LocationSummary* StoreStaticFieldInstr::MakeLocationSummary(Zone* zone, |
return locs; |
} |
- |
void StoreStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (compiler->is_optimizing()) { |
__ LoadConstant(locs()->temp(0).reg(), |
@@ -407,7 +390,6 @@ void StoreStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
EMIT_NATIVE_CODE(LoadStaticField, 1, Location::RequiresRegister()) { |
if (compiler->is_optimizing()) { |
__ LoadField(locs()->out(0).reg(), locs()->in(0).reg(), |
@@ -418,7 +400,6 @@ EMIT_NATIVE_CODE(LoadStaticField, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(InitStaticField, |
1, |
Location::NoLocation(), |
@@ -432,7 +413,6 @@ EMIT_NATIVE_CODE(InitStaticField, |
compiler->RecordAfterCall(this, FlowGraphCompiler::kNoResult); |
} |
- |
EMIT_NATIVE_CODE(ClosureCall, |
1, |
Location::RegisterLocation(0), |
@@ -452,7 +432,6 @@ EMIT_NATIVE_CODE(ClosureCall, |
} |
} |
- |
static void EmitBranchOnCondition(FlowGraphCompiler* compiler, |
Condition true_condition, |
BranchLabels labels) { |
@@ -481,7 +460,6 @@ static void EmitBranchOnCondition(FlowGraphCompiler* compiler, |
} |
} |
- |
Condition StrictCompareInstr::GetNextInstructionCondition( |
FlowGraphCompiler* compiler, |
BranchLabels labels) { |
@@ -489,7 +467,6 @@ Condition StrictCompareInstr::GetNextInstructionCondition( |
: NEXT_IS_FALSE; |
} |
- |
Condition StrictCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
ASSERT((kind() == Token::kNE_STRICT) || (kind() == Token::kEQ_STRICT)); |
@@ -532,14 +509,12 @@ Condition StrictCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
return condition; |
} |
- |
DEFINE_MAKE_LOCATION_SUMMARY(StrictCompare, |
2, |
Location::RequiresRegister(), |
needs_number_check() ? LocationSummary::kCall |
: LocationSummary::kNoCall) |
- |
void ComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler, |
BranchInstr* branch) { |
BranchLabels labels = compiler->CreateBranchLabels(branch); |
@@ -549,7 +524,6 @@ void ComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler, |
} |
} |
- |
void ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
Label is_true, is_false; |
BranchLabels labels = {&is_true, &is_false, &is_false}; |
@@ -598,7 +572,6 @@ void ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* BranchInstr::MakeLocationSummary(Zone* zone, bool opt) const { |
comparison()->InitializeLocationSummary(zone, opt); |
if (!comparison()->HasLocs()) { |
@@ -609,12 +582,10 @@ LocationSummary* BranchInstr::MakeLocationSummary(Zone* zone, bool opt) const { |
return comparison()->locs(); |
} |
- |
void BranchInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
comparison()->EmitBranchCode(compiler, this); |
} |
- |
EMIT_NATIVE_CODE(Goto, 0) { |
if (!compiler->is_optimizing()) { |
// Add a deoptimization descriptor for deoptimizing instructions that |
@@ -632,14 +603,12 @@ EMIT_NATIVE_CODE(Goto, 0) { |
} |
} |
- |
Condition TestSmiInstr::GetNextInstructionCondition(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
ASSERT((kind() == Token::kEQ) || (kind() == Token::kNE)); |
return (kind() == Token::kEQ) ? NEXT_IS_TRUE : NEXT_IS_FALSE; |
} |
- |
Condition TestSmiInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
ASSERT((kind() == Token::kEQ) || (kind() == Token::kNE)); |
@@ -649,13 +618,11 @@ Condition TestSmiInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
return (kind() == Token::kEQ) ? NEXT_IS_TRUE : NEXT_IS_FALSE; |
} |
- |
DEFINE_MAKE_LOCATION_SUMMARY(TestSmi, |
2, |
Location::RequiresRegister(), |
LocationSummary::kNoCall) |
- |
Condition TestCidsInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
ASSERT((kind() == Token::kIS) || (kind() == Token::kISNOT)); |
@@ -689,20 +656,17 @@ Condition TestCidsInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
return NEXT_IS_TRUE; |
} |
- |
Condition TestCidsInstr::GetNextInstructionCondition( |
FlowGraphCompiler* compiler, |
BranchLabels labels) { |
return NEXT_IS_TRUE; |
} |
- |
DEFINE_MAKE_LOCATION_SUMMARY(TestCids, |
1, |
Location::RequiresRegister(), |
LocationSummary::kNoCall) |
- |
EMIT_NATIVE_CODE(CreateArray, |
2, |
Location::RequiresRegister(), |
@@ -723,7 +687,6 @@ EMIT_NATIVE_CODE(CreateArray, |
} |
} |
- |
EMIT_NATIVE_CODE(StoreIndexed, |
3, |
Location::NoLocation(), |
@@ -806,7 +769,6 @@ EMIT_NATIVE_CODE(StoreIndexed, |
} |
} |
- |
EMIT_NATIVE_CODE(LoadIndexed, |
2, |
Location::RequiresRegister(), |
@@ -919,7 +881,6 @@ EMIT_NATIVE_CODE(LoadIndexed, |
} |
} |
- |
EMIT_NATIVE_CODE(StringInterpolate, |
1, |
Location::RegisterLocation(0), |
@@ -947,7 +908,6 @@ EMIT_NATIVE_CODE(StringInterpolate, |
} |
} |
- |
EMIT_NATIVE_CODE(NativeCall, |
0, |
Location::NoLocation(), |
@@ -976,7 +936,6 @@ EMIT_NATIVE_CODE(NativeCall, |
token_pos()); |
} |
- |
EMIT_NATIVE_CODE(OneByteStringFromCharCode, |
1, |
Location::RequiresRegister(), |
@@ -987,7 +946,6 @@ EMIT_NATIVE_CODE(OneByteStringFromCharCode, |
__ OneByteStringFromCharCode(result, char_code); |
} |
- |
EMIT_NATIVE_CODE(StringToCharCode, |
1, |
Location::RequiresRegister(), |
@@ -998,7 +956,6 @@ EMIT_NATIVE_CODE(StringToCharCode, |
__ StringToCharCode(result, str); |
} |
- |
EMIT_NATIVE_CODE(AllocateObject, |
0, |
Location::RequiresRegister(), |
@@ -1066,7 +1023,6 @@ EMIT_NATIVE_CODE(AllocateObject, |
} |
} |
- |
EMIT_NATIVE_CODE(StoreInstanceField, 2) { |
ASSERT(!HasTemp()); |
ASSERT(offset_in_bytes() % kWordSize == 0); |
@@ -1084,7 +1040,6 @@ EMIT_NATIVE_CODE(StoreInstanceField, 2) { |
} |
} |
- |
EMIT_NATIVE_CODE(LoadField, 1, Location::RequiresRegister()) { |
ASSERT(offset_in_bytes() % kWordSize == 0); |
if (compiler->is_optimizing()) { |
@@ -1101,7 +1056,6 @@ EMIT_NATIVE_CODE(LoadField, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(LoadUntagged, 1, Location::RequiresRegister()) { |
const Register obj = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
@@ -1113,7 +1067,6 @@ EMIT_NATIVE_CODE(LoadUntagged, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(BooleanNegate, 1, Location::RequiresRegister()) { |
if (compiler->is_optimizing()) { |
__ BooleanNegate(locs()->out(0).reg(), locs()->in(0).reg()); |
@@ -1122,7 +1075,6 @@ EMIT_NATIVE_CODE(BooleanNegate, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(AllocateContext, |
0, |
Location::RequiresRegister(), |
@@ -1134,7 +1086,6 @@ EMIT_NATIVE_CODE(AllocateContext, |
token_pos()); |
} |
- |
EMIT_NATIVE_CODE(AllocateUninitializedContext, |
0, |
Location::RequiresRegister(), |
@@ -1149,7 +1100,6 @@ EMIT_NATIVE_CODE(AllocateUninitializedContext, |
__ PopLocal(locs()->out(0).reg()); |
} |
- |
EMIT_NATIVE_CODE(CloneContext, |
1, |
Location::RequiresRegister(), |
@@ -1166,7 +1116,6 @@ EMIT_NATIVE_CODE(CloneContext, |
} |
} |
- |
EMIT_NATIVE_CODE(CatchBlockEntry, 0) { |
__ Bind(compiler->GetJumpLabel(this)); |
compiler->AddExceptionHandler(catch_try_index(), try_index(), |
@@ -1250,7 +1199,6 @@ EMIT_NATIVE_CODE(CatchBlockEntry, 0) { |
__ SetFrame(compiler->StackSize()); |
} |
- |
EMIT_NATIVE_CODE(Throw, 0, Location::NoLocation(), LocationSummary::kCall) { |
__ Throw(0); |
compiler->AddCurrentDescriptor(RawPcDescriptors::kOther, deopt_id(), |
@@ -1259,7 +1207,6 @@ EMIT_NATIVE_CODE(Throw, 0, Location::NoLocation(), LocationSummary::kCall) { |
__ Trap(); |
} |
- |
EMIT_NATIVE_CODE(ReThrow, 0, Location::NoLocation(), LocationSummary::kCall) { |
compiler->SetNeedsStackTrace(catch_try_index()); |
__ Throw(1); |
@@ -1305,20 +1252,17 @@ EMIT_NATIVE_CODE(InstantiateTypeArguments, |
} |
} |
- |
void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ DebugStep(); |
compiler->AddCurrentDescriptor(stub_kind_, deopt_id_, token_pos()); |
} |
- |
void GraphEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (!compiler->CanFallThroughTo(normal_entry())) { |
__ Jump(compiler->GetJumpLabel(normal_entry())); |
} |
} |
- |
LocationSummary* Instruction::MakeCallSummary(Zone* zone) { |
LocationSummary* result = |
new (zone) LocationSummary(zone, 0, 0, LocationSummary::kCall); |
@@ -1328,22 +1272,18 @@ LocationSummary* Instruction::MakeCallSummary(Zone* zone) { |
return result; |
} |
- |
CompileType BinaryUint32OpInstr::ComputeType() const { |
return CompileType::Int(); |
} |
- |
CompileType ShiftUint32OpInstr::ComputeType() const { |
return CompileType::Int(); |
} |
- |
CompileType UnaryUint32OpInstr::ComputeType() const { |
return CompileType::Int(); |
} |
- |
CompileType LoadIndexedInstr::ComputeType() const { |
switch (class_id_) { |
case kArrayCid: |
@@ -1383,7 +1323,6 @@ CompileType LoadIndexedInstr::ComputeType() const { |
} |
} |
- |
Representation LoadIndexedInstr::representation() const { |
switch (class_id_) { |
case kArrayCid: |
@@ -1419,7 +1358,6 @@ Representation LoadIndexedInstr::representation() const { |
} |
} |
- |
Representation StoreIndexedInstr::RequiredInputRepresentation( |
intptr_t idx) const { |
// Array can be a Dart object or a pointer to external data. |
@@ -1463,7 +1401,6 @@ Representation StoreIndexedInstr::RequiredInputRepresentation( |
} |
} |
- |
void Environment::DropArguments(intptr_t argc) { |
#if defined(DEBUG) |
// Check that we are in the backend - register allocation has been run. |
@@ -1476,14 +1413,12 @@ void Environment::DropArguments(intptr_t argc) { |
values_.TruncateTo(values_.length() - argc); |
} |
- |
EMIT_NATIVE_CODE(CheckSmi, 1) { |
__ CheckSmi(locs()->in(0).reg()); |
compiler->EmitDeopt(deopt_id(), ICData::kDeoptCheckSmi, |
licm_hoisted_ ? ICData::kHoisted : 0); |
} |
- |
EMIT_NATIVE_CODE(CheckEitherNonSmi, 2) { |
const Register left = locs()->in(0).reg(); |
const Register right = locs()->in(1).reg(); |
@@ -1492,7 +1427,6 @@ EMIT_NATIVE_CODE(CheckEitherNonSmi, 2) { |
licm_hoisted_ ? ICData::kHoisted : 0); |
} |
- |
EMIT_NATIVE_CODE(CheckClassId, 1) { |
if (cids_.IsSingleCid()) { |
__ CheckClassId(locs()->in(0).reg(), |
@@ -1505,7 +1439,6 @@ EMIT_NATIVE_CODE(CheckClassId, 1) { |
compiler->EmitDeopt(deopt_id(), ICData::kDeoptCheckClass); |
} |
- |
EMIT_NATIVE_CODE(CheckClass, 1) { |
const Register value = locs()->in(0).reg(); |
if (IsNullCheck()) { |
@@ -1570,7 +1503,6 @@ EMIT_NATIVE_CODE(CheckClass, 1) { |
licm_hoisted_ ? ICData::kHoisted : 0); |
} |
- |
EMIT_NATIVE_CODE(BinarySmiOp, 2, Location::RequiresRegister()) { |
const Register left = locs()->in(0).reg(); |
const Register right = locs()->in(1).reg(); |
@@ -1628,7 +1560,6 @@ EMIT_NATIVE_CODE(BinarySmiOp, 2, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(UnarySmiOp, 1, Location::RequiresRegister()) { |
switch (op_kind()) { |
case Token::kNEGATE: { |
@@ -1645,7 +1576,6 @@ EMIT_NATIVE_CODE(UnarySmiOp, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(Box, 1, Location::RequiresRegister(), LocationSummary::kCall) { |
ASSERT(from_representation() == kUnboxedDouble); |
const Register value = locs()->in(0).reg(); |
@@ -1672,7 +1602,6 @@ EMIT_NATIVE_CODE(Box, 1, Location::RequiresRegister(), LocationSummary::kCall) { |
__ WriteIntoDouble(out, value); |
} |
- |
EMIT_NATIVE_CODE(Unbox, 1, Location::RequiresRegister()) { |
ASSERT(representation() == kUnboxedDouble); |
const intptr_t value_cid = value()->Type()->ToCid(); |
@@ -1694,7 +1623,6 @@ EMIT_NATIVE_CODE(Unbox, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(UnboxInteger32, 1, Location::RequiresRegister()) { |
#if defined(ARCH_IS_64_BIT) |
const Register out = locs()->out(0).reg(); |
@@ -1712,7 +1640,6 @@ EMIT_NATIVE_CODE(UnboxInteger32, 1, Location::RequiresRegister()) { |
#endif // defined(ARCH_IS_64_BIT) |
} |
- |
EMIT_NATIVE_CODE(BoxInteger32, 1, Location::RequiresRegister()) { |
#if defined(ARCH_IS_64_BIT) |
const Register out = locs()->out(0).reg(); |
@@ -1729,7 +1656,6 @@ EMIT_NATIVE_CODE(BoxInteger32, 1, Location::RequiresRegister()) { |
#endif // defined(ARCH_IS_64_BIT) |
} |
- |
EMIT_NATIVE_CODE(DoubleToSmi, 1, Location::RequiresRegister()) { |
const Register value = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
@@ -1737,14 +1663,12 @@ EMIT_NATIVE_CODE(DoubleToSmi, 1, Location::RequiresRegister()) { |
compiler->EmitDeopt(deopt_id(), ICData::kDeoptDoubleToSmi); |
} |
- |
EMIT_NATIVE_CODE(SmiToDouble, 1, Location::RequiresRegister()) { |
const Register value = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
__ SmiToDouble(result, value); |
} |
- |
EMIT_NATIVE_CODE(BinaryDoubleOp, 2, Location::RequiresRegister()) { |
const Register left = locs()->in(0).reg(); |
const Register right = locs()->in(1).reg(); |
@@ -1767,7 +1691,6 @@ EMIT_NATIVE_CODE(BinaryDoubleOp, 2, Location::RequiresRegister()) { |
} |
} |
- |
Condition DoubleTestOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
ASSERT(compiler->is_optimizing()); |
@@ -1786,7 +1709,6 @@ Condition DoubleTestOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
return is_negated ? NEXT_IS_FALSE : NEXT_IS_TRUE; |
} |
- |
Condition DoubleTestOpInstr::GetNextInstructionCondition( |
FlowGraphCompiler* compiler, |
BranchLabels labels) { |
@@ -1794,17 +1716,14 @@ Condition DoubleTestOpInstr::GetNextInstructionCondition( |
return is_negated ? NEXT_IS_FALSE : NEXT_IS_TRUE; |
} |
- |
DEFINE_MAKE_LOCATION_SUMMARY(DoubleTestOp, 1, Location::RequiresRegister()) |
- |
EMIT_NATIVE_CODE(UnaryDoubleOp, 1, Location::RequiresRegister()) { |
const Register value = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
__ DNeg(result, value); |
} |
- |
EMIT_NATIVE_CODE(MathUnary, 1, Location::RequiresRegister()) { |
const Register value = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
@@ -1818,7 +1737,6 @@ EMIT_NATIVE_CODE(MathUnary, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(DoubleToDouble, 1, Location::RequiresRegister()) { |
const Register in = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
@@ -1837,21 +1755,18 @@ EMIT_NATIVE_CODE(DoubleToDouble, 1, Location::RequiresRegister()) { |
} |
} |
- |
EMIT_NATIVE_CODE(DoubleToFloat, 1, Location::RequiresRegister()) { |
const Register in = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
__ DoubleToFloat(result, in); |
} |
- |
EMIT_NATIVE_CODE(FloatToDouble, 1, Location::RequiresRegister()) { |
const Register in = locs()->in(0).reg(); |
const Register result = locs()->out(0).reg(); |
__ FloatToDouble(result, in); |
} |
- |
EMIT_NATIVE_CODE(InvokeMathCFunction, |
InputCount(), |
Location::RequiresRegister()) { |
@@ -1873,7 +1788,6 @@ EMIT_NATIVE_CODE(InvokeMathCFunction, |
} |
} |
- |
EMIT_NATIVE_CODE(MathMinMax, 2, Location::RequiresRegister()) { |
ASSERT((op_kind() == MethodRecognizer::kMathMin) || |
(op_kind() == MethodRecognizer::kMathMax)); |
@@ -1896,7 +1810,6 @@ EMIT_NATIVE_CODE(MathMinMax, 2, Location::RequiresRegister()) { |
} |
} |
- |
static Token::Kind FlipCondition(Token::Kind kind) { |
switch (kind) { |
case Token::kEQ: |
@@ -1917,7 +1830,6 @@ static Token::Kind FlipCondition(Token::Kind kind) { |
} |
} |
- |
static Bytecode::Opcode OpcodeForSmiCondition(Token::Kind kind) { |
switch (kind) { |
case Token::kEQ: |
@@ -1938,7 +1850,6 @@ static Bytecode::Opcode OpcodeForSmiCondition(Token::Kind kind) { |
} |
} |
- |
static Bytecode::Opcode OpcodeForDoubleCondition(Token::Kind kind) { |
switch (kind) { |
case Token::kEQ: |
@@ -1959,7 +1870,6 @@ static Bytecode::Opcode OpcodeForDoubleCondition(Token::Kind kind) { |
} |
} |
- |
static Condition EmitSmiComparisonOp(FlowGraphCompiler* compiler, |
LocationSummary* locs, |
Token::Kind kind, |
@@ -1981,7 +1891,6 @@ static Condition EmitSmiComparisonOp(FlowGraphCompiler* compiler, |
return condition; |
} |
- |
static Condition EmitDoubleComparisonOp(FlowGraphCompiler* compiler, |
LocationSummary* locs, |
Token::Kind kind) { |
@@ -1998,7 +1907,6 @@ static Condition EmitDoubleComparisonOp(FlowGraphCompiler* compiler, |
return condition; |
} |
- |
Condition EqualityCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
if (operation_cid() == kSmiCid) { |
@@ -2009,7 +1917,6 @@ Condition EqualityCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
} |
} |
- |
Condition EqualityCompareInstr::GetNextInstructionCondition( |
FlowGraphCompiler* compiler, |
BranchLabels labels) { |
@@ -2022,10 +1929,8 @@ Condition EqualityCompareInstr::GetNextInstructionCondition( |
} |
} |
- |
DEFINE_MAKE_LOCATION_SUMMARY(EqualityCompare, 2, Location::RequiresRegister()); |
- |
Condition RelationalOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
if (operation_cid() == kSmiCid) { |
@@ -2036,7 +1941,6 @@ Condition RelationalOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
} |
} |
- |
Condition RelationalOpInstr::GetNextInstructionCondition( |
FlowGraphCompiler* compiler, |
BranchLabels labels) { |
@@ -2049,10 +1953,8 @@ Condition RelationalOpInstr::GetNextInstructionCondition( |
} |
} |
- |
DEFINE_MAKE_LOCATION_SUMMARY(RelationalOp, 2, Location::RequiresRegister()) |
- |
EMIT_NATIVE_CODE(CheckArrayBound, 2) { |
const Register length = locs()->in(kLengthPos).reg(); |
const Register index = locs()->in(kIndexPos).reg(); |