Revision: 4896
Author: [email protected]
Date: Thu Jun 17 10:13:40 2010
Log: Push AccessorInfo data directly if they reside in old space.
Review URL: http://codereview.chromium.org/2840004
http://code.google.com/p/v8/source/detail?r=4896
Modified:
/branches/bleeding_edge/src/ia32/stub-cache-ia32.cc
=======================================
--- /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Mon Jun 7 01:27:32
2010
+++ /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Thu Jun 17 10:13:40
2010
@@ -816,8 +816,13 @@
__ push(other);
__ push(receiver); // receiver
__ push(reg); // holder
- __ mov(other, Immediate(callback_handle));
- __ push(FieldOperand(other, AccessorInfo::kDataOffset)); // data
+ // Push data from AccessorInfo.
+ if (Heap::InNewSpace(callback_handle->data())) {
+ __ mov(other, Immediate(callback_handle));
+ __ push(FieldOperand(other, AccessorInfo::kDataOffset));
+ } else {
+ __ push(Immediate(Handle<Object>(callback_handle->data())));
+ }
__ push(name_reg); // name
// Save a pointer to where we pushed the arguments pointer.
// This will be passed as the const AccessorInfo& to the C++ callback.
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev