Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: src/x64/lithium-codegen-x64.cc

Issue 6580032: X64 Crankshaft: Add untagged version of TranscendentalCacheStub to x64, enabl... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/x64/full-codegen-x64.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 StringAddStub stub(NO_STRING_ADD_FLAGS); 704 StringAddStub stub(NO_STRING_ADD_FLAGS);
705 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); 705 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
706 break; 706 break;
707 } 707 }
708 case CodeStub::StringCompare: { 708 case CodeStub::StringCompare: {
709 StringCompareStub stub; 709 StringCompareStub stub;
710 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); 710 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
711 break; 711 break;
712 } 712 }
713 case CodeStub::TranscendentalCache: { 713 case CodeStub::TranscendentalCache: {
714 TranscendentalCacheStub stub(instr->transcendental_type()); 714 TranscendentalCacheStub stub(instr->transcendental_type(),
715 TranscendentalCacheStub::TAGGED);
715 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); 716 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
716 break; 717 break;
717 } 718 }
718 default: 719 default:
719 UNREACHABLE(); 720 UNREACHABLE();
720 } 721 }
721 } 722 }
722 723
723 724
724 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { 725 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) {
(...skipping 1734 matching lines...) Expand 10 before | Expand all | Expand 10 after
2459 __ sqrtsd(input_reg, input_reg); 2460 __ sqrtsd(input_reg, input_reg);
2460 } 2461 }
2461 2462
2462 2463
2463 void LCodeGen::DoPower(LPower* instr) { 2464 void LCodeGen::DoPower(LPower* instr) {
2464 Abort("Unimplemented: %s", "DoPower"); 2465 Abort("Unimplemented: %s", "DoPower");
2465 } 2466 }
2466 2467
2467 2468
2468 void LCodeGen::DoMathLog(LUnaryMathOperation* instr) { 2469 void LCodeGen::DoMathLog(LUnaryMathOperation* instr) {
2469 Abort("Unimplemented: %s", "DoMathLog"); 2470 ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
2471 TranscendentalCacheStub stub(TranscendentalCache::LOG,
2472 TranscendentalCacheStub::UNTAGGED);
2473 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
2470 } 2474 }
2471 2475
2472 2476
2473 void LCodeGen::DoMathCos(LUnaryMathOperation* instr) { 2477 void LCodeGen::DoMathCos(LUnaryMathOperation* instr) {
2474 Abort("Unimplemented: %s", "DoMathCos"); 2478 ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
2479 TranscendentalCacheStub stub(TranscendentalCache::LOG,
2480 TranscendentalCacheStub::UNTAGGED);
2481 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
2475 } 2482 }
2476 2483
2477 2484
2478 void LCodeGen::DoMathSin(LUnaryMathOperation* instr) { 2485 void LCodeGen::DoMathSin(LUnaryMathOperation* instr) {
2479 Abort("Unimplemented: %s", "DoMathSin"); 2486 ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
2487 TranscendentalCacheStub stub(TranscendentalCache::LOG,
2488 TranscendentalCacheStub::UNTAGGED);
2489 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
2480 } 2490 }
2481 2491
2482 2492
2483 void LCodeGen::DoUnaryMathOperation(LUnaryMathOperation* instr) { 2493 void LCodeGen::DoUnaryMathOperation(LUnaryMathOperation* instr) {
2484 switch (instr->op()) { 2494 switch (instr->op()) {
2485 case kMathAbs: 2495 case kMathAbs:
2486 DoMathAbs(instr); 2496 DoMathAbs(instr);
2487 break; 2497 break;
2488 case kMathFloor: 2498 case kMathFloor:
2489 DoMathFloor(instr); 2499 DoMathFloor(instr);
(...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after
3541 RegisterEnvironmentForDeoptimization(environment); 3551 RegisterEnvironmentForDeoptimization(environment);
3542 ASSERT(osr_pc_offset_ == -1); 3552 ASSERT(osr_pc_offset_ == -1);
3543 osr_pc_offset_ = masm()->pc_offset(); 3553 osr_pc_offset_ = masm()->pc_offset();
3544 } 3554 }
3545 3555
3546 #undef __ 3556 #undef __
3547 3557
3548 } } // namespace v8::internal 3558 } } // namespace v8::internal
3549 3559
3550 #endif // V8_TARGET_ARCH_X64 3560 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « src/x64/full-codegen-x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698