Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 8f1c9c090dfbdf6e1de38ed34c1f028a2efbe8b0..b4b80fafab1b27947226b0ae26ce1b8ae6a798bd 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -1085,13 +1085,6 @@ void LCodeGen::DoCallStub(LCallStub* instr) { |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
break; |
} |
- case CodeStub::TranscendentalCache: { |
- __ ldr(r0, MemOperand(sp, 0)); |
- TranscendentalCacheStub stub(instr->transcendental_type(), |
- TranscendentalCacheStub::TAGGED); |
- CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
- break; |
- } |
default: |
UNREACHABLE(); |
} |
@@ -3941,13 +3934,11 @@ void LCodeGen::DoMathExp(LMathExp* instr) { |
void LCodeGen::DoMathLog(LMathLog* instr) { |
- ASSERT(ToDoubleRegister(instr->result()).is(d2)); |
- // Set the context register to a GC-safe fake value. Clobbering it is |
- // OK because this instruction is marked as a call. |
- __ mov(cp, Operand::Zero()); |
- TranscendentalCacheStub stub(TranscendentalCache::LOG, |
- TranscendentalCacheStub::UNTAGGED); |
- CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
+ __ PrepareCallCFunction(0, 1, scratch0()); |
+ __ SetCallCDoubleArguments(ToDoubleRegister(instr->value())); |
+ __ CallCFunction(ExternalReference::math_log_double_function(isolate()), |
Yang
2013/12/13 15:54:39
I just took a look at ExternalReference::math_log_
Sven Panne
2013/12/16 08:20:23
Good point. Of course the compiler won't "inline",
|
+ 0, 1); |
+ __ GetCFunctionDoubleResult(ToDoubleRegister(instr->result())); |
} |