Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1128 __ jmp(done); | 1128 __ jmp(done); |
| 1129 } | 1129 } |
| 1130 } | 1130 } |
| 1131 } | 1131 } |
| 1132 | 1132 |
| 1133 | 1133 |
| 1134 void FullCodeGenerator::EmitVariableLoad(Variable* var) { | 1134 void FullCodeGenerator::EmitVariableLoad(Variable* var) { |
| 1135 // Three cases: non-this global variables, lookup slots, and all other | 1135 // Three cases: non-this global variables, lookup slots, and all other |
| 1136 // types of slots. | 1136 // types of slots. |
| 1137 Slot* slot = var->AsSlot(); | 1137 Slot* slot = var->AsSlot(); |
| 1138 ASSERT((var->is_global() && !var->is_this()) == (slot != NULL)); | 1138 ASSERT((var->is_global() && !var->is_this()) == (slot == NULL)); |
|
Kevin Millikin (Chromium)
2011/03/21 13:46:27
This was a silly typo, only present on the ia32 pl
| |
| 1139 | 1139 |
| 1140 if (slot == NULL) { | 1140 if (slot == NULL) { |
| 1141 Comment cmnt(masm_, "Global variable"); | 1141 Comment cmnt(masm_, "Global variable"); |
| 1142 // Use inline caching. Variable name is passed in ecx and the global | 1142 // Use inline caching. Variable name is passed in ecx and the global |
| 1143 // object on the stack. | 1143 // object on the stack. |
| 1144 __ mov(eax, GlobalObjectOperand()); | 1144 __ mov(eax, GlobalObjectOperand()); |
| 1145 __ mov(ecx, var->name()); | 1145 __ mov(ecx, var->name()); |
| 1146 Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize)); | 1146 Handle<Code> ic(Builtins::builtin(Builtins::LoadIC_Initialize)); |
| 1147 EmitCallIC(ic, RelocInfo::CODE_TARGET_CONTEXT); | 1147 EmitCallIC(ic, RelocInfo::CODE_TARGET_CONTEXT); |
| 1148 context()->Plug(eax); | 1148 context()->Plug(eax); |
| (...skipping 2954 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4103 // And return. | 4103 // And return. |
| 4104 __ ret(0); | 4104 __ ret(0); |
| 4105 } | 4105 } |
| 4106 | 4106 |
| 4107 | 4107 |
| 4108 #undef __ | 4108 #undef __ |
| 4109 | 4109 |
| 4110 } } // namespace v8::internal | 4110 } } // namespace v8::internal |
| 4111 | 4111 |
| 4112 #endif // V8_TARGET_ARCH_IA32 | 4112 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |