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

Side by Side Diff: src/assembler.cc

Issue 119036: * Modify simulator and ARM code generator to avoid swi... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 6 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
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 break; 497 break;
498 } 498 }
499 } 499 }
500 #endif // DEBUG 500 #endif // DEBUG
501 501
502 502
503 // ----------------------------------------------------------------------------- 503 // -----------------------------------------------------------------------------
504 // Implementation of ExternalReference 504 // Implementation of ExternalReference
505 505
506 ExternalReference::ExternalReference(Builtins::CFunctionId id) 506 ExternalReference::ExternalReference(Builtins::CFunctionId id)
507 : address_(Builtins::c_function_address(id)) {} 507 : address_(Redirect(Builtins::c_function_address(id))) {}
508 508
509 509
510 ExternalReference::ExternalReference(Builtins::Name name) 510 ExternalReference::ExternalReference(Builtins::Name name)
511 : address_(Builtins::builtin_address(name)) {} 511 : address_(Builtins::builtin_address(name)) {}
512 512
513 513
514 ExternalReference::ExternalReference(Runtime::FunctionId id) 514 ExternalReference::ExternalReference(Runtime::FunctionId id)
515 : address_(Runtime::FunctionForId(id)->entry) {} 515 : address_(Redirect(Runtime::FunctionForId(id)->entry)) {}
516 516
517 517
518 ExternalReference::ExternalReference(Runtime::Function* f) 518 ExternalReference::ExternalReference(Runtime::Function* f)
519 : address_(f->entry) {} 519 : address_(Redirect(f->entry)) {}
520 520
521 521
522 ExternalReference::ExternalReference(const IC_Utility& ic_utility) 522 ExternalReference::ExternalReference(const IC_Utility& ic_utility)
523 : address_(ic_utility.address()) {} 523 : address_(Redirect(ic_utility.address())) {}
524 524
525 #ifdef ENABLE_DEBUGGER_SUPPORT 525 #ifdef ENABLE_DEBUGGER_SUPPORT
526 ExternalReference::ExternalReference(const Debug_Address& debug_address) 526 ExternalReference::ExternalReference(const Debug_Address& debug_address)
527 : address_(debug_address.address()) {} 527 : address_(debug_address.address()) {}
528 #endif 528 #endif
529 529
530 ExternalReference::ExternalReference(StatsCounter* counter) 530 ExternalReference::ExternalReference(StatsCounter* counter)
531 : address_(reinterpret_cast<Address>(counter->GetInternalPointer())) {} 531 : address_(reinterpret_cast<Address>(counter->GetInternalPointer())) {}
532 532
533 533
534 ExternalReference::ExternalReference(Top::AddressId id) 534 ExternalReference::ExternalReference(Top::AddressId id)
535 : address_(Top::get_address_from_id(id)) {} 535 : address_(Top::get_address_from_id(id)) {}
536 536
537 537
538 ExternalReference::ExternalReference(const SCTableReference& table_ref) 538 ExternalReference::ExternalReference(const SCTableReference& table_ref)
539 : address_(table_ref.address()) {} 539 : address_(table_ref.address()) {}
540 540
541 541
542 ExternalReference ExternalReference::perform_gc_function() {
543 return ExternalReference(Redirect(FUNCTION_ADDR(Runtime::PerformGC)));
544 }
545
546
542 ExternalReference ExternalReference::builtin_passed_function() { 547 ExternalReference ExternalReference::builtin_passed_function() {
543 return ExternalReference(&Builtins::builtin_passed_function); 548 return ExternalReference(&Builtins::builtin_passed_function);
544 } 549 }
545 550
551
546 ExternalReference ExternalReference::the_hole_value_location() { 552 ExternalReference ExternalReference::the_hole_value_location() {
547 return ExternalReference(Factory::the_hole_value().location()); 553 return ExternalReference(Factory::the_hole_value().location());
548 } 554 }
549 555
550 556
551 ExternalReference ExternalReference::address_of_stack_guard_limit() { 557 ExternalReference ExternalReference::address_of_stack_guard_limit() {
552 return ExternalReference(StackGuard::address_of_jslimit()); 558 return ExternalReference(StackGuard::address_of_jslimit());
553 } 559 }
554 560
555 561
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 break; 609 break;
604 case Token::SUB: 610 case Token::SUB:
605 function = &sub_two_doubles; 611 function = &sub_two_doubles;
606 break; 612 break;
607 case Token::MUL: 613 case Token::MUL:
608 function = &mul_two_doubles; 614 function = &mul_two_doubles;
609 break; 615 break;
610 default: 616 default:
611 UNREACHABLE(); 617 UNREACHABLE();
612 } 618 }
613 return ExternalReference(FUNCTION_ADDR(function)); 619 // Passing true as 2nd parameter indicates that they return an fp value.
620 return ExternalReference(Redirect(FUNCTION_ADDR(function), true));
614 } 621 }
615 622
616 623
624 ExternalReferenceRedirector* ExternalReference::redirector_ = NULL;
625
626
617 #ifdef ENABLE_DEBUGGER_SUPPORT 627 #ifdef ENABLE_DEBUGGER_SUPPORT
618 ExternalReference ExternalReference::debug_break() { 628 ExternalReference ExternalReference::debug_break() {
619 return ExternalReference(FUNCTION_ADDR(Debug::Break)); 629 return ExternalReference(Redirect(FUNCTION_ADDR(Debug::Break)));
620 } 630 }
621 631
622 632
623 ExternalReference ExternalReference::debug_step_in_fp_address() { 633 ExternalReference ExternalReference::debug_step_in_fp_address() {
624 return ExternalReference(Debug::step_in_fp_addr()); 634 return ExternalReference(Debug::step_in_fp_addr());
625 } 635 }
626 #endif 636 #endif
627 637
628 } } // namespace v8::internal 638 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698