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

Reply via email to