Revision: 13422
Author: [email protected]
Date: Fri Jan 18 02:10:36 2013
Log: MIPS: Don't emit code for instructions that are hiding behind an
HSoftDeoptimize
Port r13412 (36df819b)
BUG=
TEST=
Review URL: https://codereview.chromium.org/12022005
Patch from Akos Palfi <[email protected]>.
http://code.google.com/p/v8/source/detail?r=13422
Modified:
/branches/bleeding_edge/src/mips/lithium-codegen-mips.cc
/branches/bleeding_edge/src/mips/lithium-mips.cc
/branches/bleeding_edge/src/mips/lithium-mips.h
=======================================
--- /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Fri Jan 18
00:53:11 2013
+++ /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Fri Jan 18
02:10:36 2013
@@ -5618,6 +5618,11 @@
void LCodeGen::DoDeoptimize(LDeoptimize* instr) {
DeoptimizeIf(al, instr->environment(), zero_reg, Operand(zero_reg));
}
+
+
+void LCodeGen::DoDummyUse(LDummyUse* instr) {
+ // Nothing to see here, move on!
+}
void LCodeGen::DoDeleteProperty(LDeleteProperty* instr) {
=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.cc Wed Jan 9 04:31:34
2013
+++ /branches/bleeding_edge/src/mips/lithium-mips.cc Fri Jan 18 02:10:36
2013
@@ -680,6 +680,11 @@
LInstruction* LChunkBuilder::DoBlockEntry(HBlockEntry* instr) {
return new(zone()) LLabel(instr->block());
}
+
+
+LInstruction* LChunkBuilder::DoDummyUse(HDummyUse* instr) {
+ return DefineAsRegister(new(zone()) LDummyUse(UseAny(instr->value())));
+}
LInstruction* LChunkBuilder::DoSoftDeoptimize(HSoftDeoptimize* instr) {
=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.h Wed Jan 9 04:31:34 2013
+++ /branches/bleeding_edge/src/mips/lithium-mips.h Fri Jan 18 02:10:36 2013
@@ -93,6 +93,7 @@
V(Deoptimize) \
V(DivI) \
V(DoubleToI) \
+ V(DummyUse) \
V(ElementsKind) \
V(FastLiteral) \
V(FixedArrayBaseLength) \
@@ -401,6 +402,15 @@
};
+class LDummyUse: public LTemplateInstruction<1, 1, 0> {
+ public:
+ explicit LDummyUse(LOperand* value) {
+ inputs_[0] = value;
+ }
+ DECLARE_CONCRETE_INSTRUCTION(DummyUse, "dummy-use")
+};
+
+
class LDeoptimize: public LTemplateInstruction<0, 0, 0> {
public:
DECLARE_CONCRETE_INSTRUCTION(Deoptimize, "deoptimize")
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev