| Index: src/ia32/lithium-codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/lithium-codegen-ia32.cc (revision 7468)
|
| +++ src/ia32/lithium-codegen-ia32.cc (working copy)
|
| @@ -2032,7 +2032,7 @@
|
| }
|
|
|
|
|
| -void LCodeGen::DoLoadGlobal(LLoadGlobal* instr) {
|
| +void LCodeGen::DoLoadGlobalCell(LLoadGlobalCell* instr) {
|
| Register result = ToRegister(instr->result());
|
| __ mov(result, Operand::Cell(instr->hydrogen()->cell()));
|
| if (instr->hydrogen()->check_hole_value()) {
|
| @@ -2042,6 +2042,19 @@
|
| }
|
|
|
|
|
| +void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
|
| + ASSERT(ToRegister(instr->context()).is(esi));
|
| + ASSERT(ToRegister(instr->global_object()).is(eax));
|
| + ASSERT(ToRegister(instr->result()).is(eax));
|
| +
|
| + __ mov(ecx, instr->name());
|
| + RelocInfo::Mode mode = instr->for_typeof() ? RelocInfo::CODE_TARGET :
|
| + RelocInfo::CODE_TARGET_CONTEXT;
|
| + Handle<Code> ic = isolate()->builtins()->LoadIC_Initialize();
|
| + CallCode(ic, mode, instr);
|
| +}
|
| +
|
| +
|
| void LCodeGen::DoStoreGlobal(LStoreGlobal* instr) {
|
| Register value = ToRegister(instr->InputAt(0));
|
| Operand cell_operand = Operand::Cell(instr->hydrogen()->cell());
|
|
|