Index: src/full-codegen/ppc/full-codegen-ppc.cc |
diff --git a/src/full-codegen/ppc/full-codegen-ppc.cc b/src/full-codegen/ppc/full-codegen-ppc.cc |
index 40f387484d59f1fa888eafc9ce031a9187a699e6..f6a7197dc8806b2ddd565751ef9ea03aec057a9e 100644 |
--- a/src/full-codegen/ppc/full-codegen-ppc.cc |
+++ b/src/full-codegen/ppc/full-codegen-ppc.cc |
@@ -2853,6 +2853,24 @@ |
} |
+void FullCodeGenerator::EmitValueOf(CallRuntime* expr) { |
+ ZoneList<Expression*>* args = expr->arguments(); |
+ DCHECK(args->length() == 1); |
+ VisitForAccumulatorValue(args->at(0)); // Load the object. |
+ |
+ Label done; |
+ // If the object is a smi return the object. |
+ __ JumpIfSmi(r3, &done); |
+ // If the object is not a value type, return the object. |
+ __ CompareObjectType(r3, r4, r4, JS_VALUE_TYPE); |
+ __ bne(&done); |
+ __ LoadP(r3, FieldMemOperand(r3, JSValue::kValueOffset)); |
+ |
+ __ bind(&done); |
+ context()->Plug(r3); |
+} |
+ |
+ |
void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) { |
ZoneList<Expression*>* args = expr->arguments(); |
DCHECK(args->length() == 1); |