| Index: src/heap.cc
|
| ===================================================================
|
| --- src/heap.cc (revision 2780)
|
| +++ src/heap.cc (working copy)
|
| @@ -3253,15 +3253,13 @@
|
|
|
|
|
| void Heap::SetStackLimit(intptr_t limit) {
|
| - // We don't use the stack limit in the roots array on x86-64 yet, but since
|
| - // pointers are generally out of range of Smis we should set the value either.
|
| -#if !V8_HOST_ARCH_64_BIT
|
| + // On 64 bit machines, pointers are generally out of range of Smis. We write
|
| + // something that looks like an out of range Smi to the GC.
|
| +
|
| // Set up the special root array entry containing the stack guard.
|
| // This is actually an address, but the tag makes the GC ignore it.
|
| - set_stack_limit(Smi::FromInt(limit >> kSmiTagSize));
|
| -#else
|
| - set_stack_limit(Smi::FromInt(0));
|
| -#endif
|
| + roots_[kStackLimitRootIndex] =
|
| + reinterpret_cast<Object*>((limit & ~kSmiTagMask) | kSmiTag);
|
| }
|
|
|
|
|
|
|