| Index: src/ia32/lithium-codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/lithium-codegen-ia32.cc (revision 6082)
|
| +++ src/ia32/lithium-codegen-ia32.cc (working copy)
|
| @@ -686,7 +686,8 @@
|
| break;
|
| }
|
| case CodeStub::TranscendentalCache: {
|
| - TranscendentalCacheStub stub(instr->transcendental_type());
|
| + TranscendentalCacheStub stub(instr->transcendental_type(),
|
| + TranscendentalCacheStub::TAGGED);
|
| CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
|
| break;
|
| }
|
| @@ -2314,11 +2315,28 @@
|
|
|
| void LCodeGen::DoMathLog(LUnaryMathOperation* instr) {
|
| ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
|
| - TranscendentalCacheSSE2Stub stub(TranscendentalCache::LOG);
|
| + TranscendentalCacheStub stub(TranscendentalCache::LOG,
|
| + TranscendentalCacheStub::UNTAGGED);
|
| CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
|
| }
|
|
|
|
|
| +void LCodeGen::DoMathCos(LUnaryMathOperation* instr) {
|
| + ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
|
| + TranscendentalCacheStub stub(TranscendentalCache::COS,
|
| + TranscendentalCacheStub::UNTAGGED);
|
| + CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
|
| +}
|
| +
|
| +
|
| +void LCodeGen::DoMathSin(LUnaryMathOperation* instr) {
|
| + ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
|
| + TranscendentalCacheStub stub(TranscendentalCache::SIN,
|
| + TranscendentalCacheStub::UNTAGGED);
|
| + CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
|
| +}
|
| +
|
| +
|
| void LCodeGen::DoUnaryMathOperation(LUnaryMathOperation* instr) {
|
| switch (instr->op()) {
|
| case kMathAbs:
|
| @@ -2336,6 +2354,12 @@
|
| case kMathPowHalf:
|
| DoMathPowHalf(instr);
|
| break;
|
| + case kMathCos:
|
| + DoMathCos(instr);
|
| + break;
|
| + case kMathSin:
|
| + DoMathSin(instr);
|
| + break;
|
| case kMathLog:
|
| DoMathLog(instr);
|
| break;
|
|
|