| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index a8323ffe5aa0f8087be9fbe6b81a8effef08532d..f938336ba1aa2f95bf6fdbeb1748bbc3504837c6 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -150,10 +150,10 @@ IC::IC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus,
|
| // levels of the stack frame iteration code. This yields a ~35% speedup when
|
| // running DeltaBlue and a ~25% speedup of gbemu with the '--nouse-ic' flag.
|
| const Address entry = Isolate::c_entry_fp(isolate->thread_local_top());
|
| - Address constant_pool = NULL;
|
| - if (FLAG_enable_ool_constant_pool) {
|
| - constant_pool =
|
| - Memory::Address_at(entry + ExitFrameConstants::kConstantPoolOffset);
|
| + Address* constant_pool = NULL;
|
| + if (FLAG_enable_embedded_constant_pool) {
|
| + constant_pool = reinterpret_cast<Address*>(
|
| + entry + ExitFrameConstants::kConstantPoolOffset);
|
| }
|
| Address* pc_address =
|
| reinterpret_cast<Address*>(entry + ExitFrameConstants::kCallerPCOffset);
|
| @@ -162,9 +162,9 @@ IC::IC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus,
|
| // StubFailureTrampoline, we need to look one frame further down the stack to
|
| // find the frame pointer and the return address stack slot.
|
| if (depth == EXTRA_CALL_FRAME) {
|
| - if (FLAG_enable_ool_constant_pool) {
|
| - constant_pool =
|
| - Memory::Address_at(fp + StandardFrameConstants::kConstantPoolOffset);
|
| + if (FLAG_enable_embedded_constant_pool) {
|
| + constant_pool = reinterpret_cast<Address*>(
|
| + fp + StandardFrameConstants::kConstantPoolOffset);
|
| }
|
| const int kCallerPCOffset = StandardFrameConstants::kCallerPCOffset;
|
| pc_address = reinterpret_cast<Address*>(fp + kCallerPCOffset);
|
| @@ -177,10 +177,8 @@ IC::IC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus,
|
| DCHECK(fp == frame->fp() && pc_address == frame->pc_address());
|
| #endif
|
| fp_ = fp;
|
| - if (FLAG_enable_ool_constant_pool) {
|
| - raw_constant_pool_ = handle(
|
| - ConstantPoolArray::cast(reinterpret_cast<Object*>(constant_pool)),
|
| - isolate);
|
| + if (FLAG_enable_embedded_constant_pool) {
|
| + constant_pool_address_ = constant_pool;
|
| }
|
| pc_address_ = StackFrame::ResolveReturnAddressLocation(pc_address);
|
| target_ = handle(raw_target(), isolate);
|
| @@ -479,8 +477,7 @@ void IC::PostPatching(Address address, Code* target, Code* old_target) {
|
| }
|
|
|
|
|
| -void IC::Clear(Isolate* isolate, Address address,
|
| - ConstantPoolArray* constant_pool) {
|
| +void IC::Clear(Isolate* isolate, Address address, Address constant_pool) {
|
| Code* target = GetTargetAtAddress(address, constant_pool);
|
|
|
| // Don't clear debug break inline cache as it will remove the break point.
|
| @@ -543,7 +540,7 @@ void LoadIC::Clear(Isolate* isolate, Code* host, LoadICNexus* nexus) {
|
|
|
|
|
| void StoreIC::Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool) {
|
| + Address constant_pool) {
|
| if (IsCleared(target)) return;
|
| Code* code = PropertyICCompiler::FindPreMonomorphic(isolate, Code::STORE_IC,
|
| target->extra_ic_state());
|
| @@ -552,7 +549,7 @@ void StoreIC::Clear(Isolate* isolate, Address address, Code* target,
|
|
|
|
|
| void KeyedStoreIC::Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool) {
|
| + Address constant_pool) {
|
| if (IsCleared(target)) return;
|
| Handle<Code> code = pre_monomorphic_stub(
|
| isolate, StoreICState::GetLanguageMode(target->extra_ic_state()));
|
| @@ -561,7 +558,7 @@ void KeyedStoreIC::Clear(Isolate* isolate, Address address, Code* target,
|
|
|
|
|
| void CompareIC::Clear(Isolate* isolate, Address address, Code* target,
|
| - ConstantPoolArray* constant_pool) {
|
| + Address constant_pool) {
|
| DCHECK(CodeStub::GetMajorKey(target) == CodeStub::CompareIC);
|
| CompareICStub stub(target->stub_key(), isolate);
|
| // Only clear CompareICs that can retain objects.
|
| @@ -2605,8 +2602,7 @@ RUNTIME_FUNCTION(CompareIC_Miss) {
|
| }
|
|
|
|
|
| -void CompareNilIC::Clear(Address address, Code* target,
|
| - ConstantPoolArray* constant_pool) {
|
| +void CompareNilIC::Clear(Address address, Code* target, Address constant_pool) {
|
| if (IsCleared(target)) return;
|
| ExtraICState state = target->extra_ic_state();
|
|
|
|
|