Commit bf656d2a authored by whesse@chromium.org's avatar whesse@chromium.org

Fix an X64 problem with builtin fixups. Remove an assert from fixups that is...

Fix an X64 problem with builtin fixups.  Remove an assert from fixups that is no longer true on all platforms.
Review URL: http://codereview.chromium.org/149332

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent bef76692
...@@ -134,7 +134,7 @@ void Bootstrapper::TearDown() { ...@@ -134,7 +134,7 @@ void Bootstrapper::TearDown() {
} }
// Pending fixups are code positions that have refer to builtin code // Pending fixups are code positions that refer to builtin code
// objects that were not available at the time the code was generated. // objects that were not available at the time the code was generated.
// The pending list is processed whenever an environment has been // The pending list is processed whenever an environment has been
// created. // created.
...@@ -216,7 +216,6 @@ bool PendingFixups::Process(Handle<JSBuiltinsObject> builtins) { ...@@ -216,7 +216,6 @@ bool PendingFixups::Process(Handle<JSBuiltinsObject> builtins) {
*reinterpret_cast<Object**>(pc) = f->code(); *reinterpret_cast<Object**>(pc) = f->code();
} }
} else { } else {
ASSERT(is_pc_relative);
Assembler::set_target_address_at(pc, f->code()->instruction_start()); Assembler::set_target_address_at(pc, f->code()->instruction_start());
} }
......
...@@ -176,7 +176,7 @@ void MacroAssembler::GetBuiltinEntry(Register target, Builtins::JavaScript id) { ...@@ -176,7 +176,7 @@ void MacroAssembler::GetBuiltinEntry(Register target, Builtins::JavaScript id) {
const char* name = Builtins::GetName(id); const char* name = Builtins::GetName(id);
int argc = Builtins::GetArgumentsCount(id); int argc = Builtins::GetArgumentsCount(id);
movq(target, code, RelocInfo::EXTERNAL_REFERENCE); // Is external reference? movq(target, code, RelocInfo::EMBEDDED_OBJECT);
if (!resolved) { if (!resolved) {
uint32_t flags = uint32_t flags =
Bootstrapper::FixupFlagsArgumentsCount::encode(argc) | Bootstrapper::FixupFlagsArgumentsCount::encode(argc) |
...@@ -624,7 +624,7 @@ void MacroAssembler::InvokeBuiltin(Builtins::JavaScript id, InvokeFlag flag) { ...@@ -624,7 +624,7 @@ void MacroAssembler::InvokeBuiltin(Builtins::JavaScript id, InvokeFlag flag) {
if (!resolved) { if (!resolved) {
uint32_t flags = uint32_t flags =
Bootstrapper::FixupFlagsArgumentsCount::encode(argc) | Bootstrapper::FixupFlagsArgumentsCount::encode(argc) |
Bootstrapper::FixupFlagsIsPCRelative::encode(true) | Bootstrapper::FixupFlagsIsPCRelative::encode(false) |
Bootstrapper::FixupFlagsUseCodeObject::encode(false); Bootstrapper::FixupFlagsUseCodeObject::encode(false);
Unresolved entry = Unresolved entry =
{ pc_offset() - kTargetAddrToReturnAddrDist, flags, name }; { pc_offset() - kTargetAddrToReturnAddrDist, flags, name };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment