| Index: src/ia32/ic-ia32.cc
|
| diff --git a/src/ia32/ic-ia32.cc b/src/ia32/ic-ia32.cc
|
| index 0b85829809db588fae2aa45b43b250c4b0fd5015..5e84bfce8535dc693e23a0a6e3c170031b099479 100644
|
| --- a/src/ia32/ic-ia32.cc
|
| +++ b/src/ia32/ic-ia32.cc
|
| @@ -1318,7 +1318,7 @@ void KeyedCallIC::GenerateNormal(MacroAssembler* masm, int argc) {
|
| }
|
|
|
|
|
| -void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
|
| +void LoadIC::GenerateMegamorphic(MacroAssembler* masm, ContextualMode mode) {
|
| // ----------- S t a t e -------------
|
| // -- ecx : name
|
| // -- edx : receiver
|
| @@ -1326,8 +1326,9 @@ void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
|
| // -----------------------------------
|
|
|
| // Probe the stub cache.
|
| + ExtraICState extra_ic_state = IC::ComputeExtraICState(mode);
|
| Code::Flags flags = Code::ComputeFlags(
|
| - Code::HANDLER, MONOMORPHIC, kNoExtraICState,
|
| + Code::HANDLER, MONOMORPHIC, extra_ic_state,
|
| Code::NORMAL, Code::LOAD_IC);
|
| masm->isolate()->stub_cache()->GenerateProbe(
|
| masm, flags, edx, ecx, ebx, eax);
|
| @@ -1435,16 +1436,17 @@ void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
|
|
|
|
|
| void StoreIC::GenerateMegamorphic(MacroAssembler* masm,
|
| - StrictModeFlag strict_mode) {
|
| + StrictModeFlag strict_mode,
|
| + ContextualMode mode) {
|
| // ----------- S t a t e -------------
|
| // -- eax : value
|
| // -- ecx : name
|
| // -- edx : receiver
|
| // -- esp[0] : return address
|
| // -----------------------------------
|
| -
|
| + ExtraICState extra_ic_state = StoreIC::ComputeExtraICState(strict_mode, mode);
|
| Code::Flags flags = Code::ComputeFlags(
|
| - Code::HANDLER, MONOMORPHIC, strict_mode,
|
| + Code::HANDLER, MONOMORPHIC, extra_ic_state,
|
| Code::NORMAL, Code::STORE_IC);
|
| masm->isolate()->stub_cache()->GenerateProbe(
|
| masm, flags, edx, ecx, ebx, no_reg);
|
|
|