Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index 69a0e7f5fd0650cc6f7bb6d50c470f04372f3dcf..52b23c4cfc6cbe4e5f0cc8ad9887b45f40229944 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -292,6 +292,13 @@ void LTypeofIsAndBranch::PrintDataTo(StringStream* stream) { |
} |
+void LSubAllocatedObject::PrintDataTo(StringStream* stream) { |
+ stream->Add(" = "); |
+ base_object()->PrintTo(stream); |
+ stream->Add("+%d", offset()); |
Hannes Payer (out of office)
2013/03/13 08:48:39
do you need a blank before +?
mvstanton
2013/03/13 10:14:40
I'll do a blank before and after the plus, that wa
|
+} |
+ |
+ |
void LCallConstantFunction::PrintDataTo(StringStream* stream) { |
stream->Add("#%d / ", arity()); |
} |
@@ -1081,6 +1088,16 @@ LInstruction* LChunkBuilder::DoPushArgument(HPushArgument* instr) { |
} |
+LInstruction* LChunkBuilder::DoSubAllocatedObject( |
+ HSubAllocatedObject* sub_object) { |
+ bool zero_offset = sub_object->offset() == 0; |
Hannes Payer (out of office)
2013/03/13 08:48:39
remove this and just just do return sub_object->of
Michael Starzinger
2013/03/13 09:12:35
Does this actually happen in practice? If not I wo
mvstanton
2013/03/13 10:14:40
good point, thanks. done.
mvstanton
2013/03/13 10:14:40
I got rid of zero_offset, per Michael's advice.
|
+ LOperand* base_object = UseRegister(sub_object->base_object()); |
Michael Starzinger
2013/03/13 09:12:35
The base register and the result register can be t
mvstanton
2013/03/13 10:14:40
Done.
|
+ LSubAllocatedObject* result = |
+ new(zone()) LSubAllocatedObject(base_object); |
+ return zero_offset ? DefineSameAsFirst(result) : DefineAsRegister(result); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoThisFunction(HThisFunction* instr) { |
return instr->HasNoUses() |
? NULL |