| Index: src/assembler.cc
|
| ===================================================================
|
| --- src/assembler.cc (revision 2053)
|
| +++ src/assembler.cc (working copy)
|
| @@ -504,7 +504,7 @@
|
| // Implementation of ExternalReference
|
|
|
| ExternalReference::ExternalReference(Builtins::CFunctionId id)
|
| - : address_(Builtins::c_function_address(id)) {}
|
| + : address_(Redirect(Builtins::c_function_address(id))) {}
|
|
|
|
|
| ExternalReference::ExternalReference(Builtins::Name name)
|
| @@ -512,15 +512,15 @@
|
|
|
|
|
| ExternalReference::ExternalReference(Runtime::FunctionId id)
|
| - : address_(Runtime::FunctionForId(id)->entry) {}
|
| + : address_(Redirect(Runtime::FunctionForId(id)->entry)) {}
|
|
|
|
|
| ExternalReference::ExternalReference(Runtime::Function* f)
|
| - : address_(f->entry) {}
|
| + : address_(Redirect(f->entry)) {}
|
|
|
|
|
| ExternalReference::ExternalReference(const IC_Utility& ic_utility)
|
| - : address_(ic_utility.address()) {}
|
| + : address_(Redirect(ic_utility.address())) {}
|
|
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| ExternalReference::ExternalReference(const Debug_Address& debug_address)
|
| @@ -539,10 +539,16 @@
|
| : address_(table_ref.address()) {}
|
|
|
|
|
| +ExternalReference ExternalReference::perform_gc_function() {
|
| + return ExternalReference(Redirect(FUNCTION_ADDR(Runtime::PerformGC)));
|
| +}
|
| +
|
| +
|
| ExternalReference ExternalReference::builtin_passed_function() {
|
| return ExternalReference(&Builtins::builtin_passed_function);
|
| }
|
|
|
| +
|
| ExternalReference ExternalReference::the_hole_value_location() {
|
| return ExternalReference(Factory::the_hole_value().location());
|
| }
|
| @@ -610,13 +616,17 @@
|
| default:
|
| UNREACHABLE();
|
| }
|
| - return ExternalReference(FUNCTION_ADDR(function));
|
| + // Passing true as 2nd parameter indicates that they return an fp value.
|
| + return ExternalReference(Redirect(FUNCTION_ADDR(function), true));
|
| }
|
|
|
|
|
| +ExternalReferenceRedirector* ExternalReference::redirector_ = NULL;
|
| +
|
| +
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| ExternalReference ExternalReference::debug_break() {
|
| - return ExternalReference(FUNCTION_ADDR(Debug::Break));
|
| + return ExternalReference(Redirect(FUNCTION_ADDR(Debug::Break)));
|
| }
|
|
|
|
|
|
|