| Index: src/ic/ic.cc | 
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc | 
| index daf7704c71d5ffa5d197ce4fb06bbb95255e8b4d..5bcddbd280ef9529f45f4c2f9fa079a7b5617aab 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); | 
| @@ -488,8 +486,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. | 
| @@ -523,7 +520,7 @@ void IC::Clear(Isolate* isolate, Address address, | 
|  | 
|  | 
| void KeyedLoadIC::Clear(Isolate* isolate, Address address, Code* target, | 
| -                        ConstantPoolArray* constant_pool) { | 
| +                        Address constant_pool) { | 
| DCHECK(!FLAG_vector_ics); | 
| if (IsCleared(target)) return; | 
|  | 
| @@ -559,7 +556,7 @@ void CallIC::Clear(Isolate* isolate, Code* host, CallICNexus* nexus) { | 
|  | 
|  | 
| void LoadIC::Clear(Isolate* isolate, Address address, Code* target, | 
| -                   ConstantPoolArray* constant_pool) { | 
| +                   Address constant_pool) { | 
| DCHECK(!FLAG_vector_ics); | 
| if (IsCleared(target)) return; | 
| Code* code = PropertyICCompiler::FindPreMonomorphic(isolate, Code::LOAD_IC, | 
| @@ -577,7 +574,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()); | 
| @@ -586,7 +583,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; | 
| SetTargetAtAddress( | 
| address, *pre_monomorphic_stub( | 
| @@ -596,7 +593,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. | 
| @@ -2748,8 +2745,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(); | 
|  | 
|  |