Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Side by Side Diff: src/ia32/lithium-ia32.cc

Issue 356713003: Use IC register definitions in platform files. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: nits. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/stub-cache-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_IA32 7 #if V8_TARGET_ARCH_IA32
8 8
9 #include "src/hydrogen-osr.h" 9 #include "src/hydrogen-osr.h"
10 #include "src/ia32/lithium-codegen-ia32.h" 10 #include "src/ia32/lithium-codegen-ia32.h"
(...skipping 2072 matching lines...) Expand 10 before | Expand all | Expand 10 after
2083 LInstruction* LChunkBuilder::DoLoadGlobalCell(HLoadGlobalCell* instr) { 2083 LInstruction* LChunkBuilder::DoLoadGlobalCell(HLoadGlobalCell* instr) {
2084 LLoadGlobalCell* result = new(zone()) LLoadGlobalCell; 2084 LLoadGlobalCell* result = new(zone()) LLoadGlobalCell;
2085 return instr->RequiresHoleCheck() 2085 return instr->RequiresHoleCheck()
2086 ? AssignEnvironment(DefineAsRegister(result)) 2086 ? AssignEnvironment(DefineAsRegister(result))
2087 : DefineAsRegister(result); 2087 : DefineAsRegister(result);
2088 } 2088 }
2089 2089
2090 2090
2091 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) { 2091 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
2092 LOperand* context = UseFixed(instr->context(), esi); 2092 LOperand* context = UseFixed(instr->context(), esi);
2093 LOperand* global_object = UseFixed(instr->global_object(), edx); 2093 LOperand* global_object = UseFixed(instr->global_object(),
2094 LoadIC::ReceiverRegister());
2094 LLoadGlobalGeneric* result = 2095 LLoadGlobalGeneric* result =
2095 new(zone()) LLoadGlobalGeneric(context, global_object); 2096 new(zone()) LLoadGlobalGeneric(context, global_object);
2096 return MarkAsCall(DefineFixed(result, eax), instr); 2097 return MarkAsCall(DefineFixed(result, eax), instr);
2097 } 2098 }
2098 2099
2099 2100
2100 LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) { 2101 LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) {
2101 LStoreGlobalCell* result = 2102 LStoreGlobalCell* result =
2102 new(zone()) LStoreGlobalCell(UseRegister(instr->value())); 2103 new(zone()) LStoreGlobalCell(UseRegister(instr->value()));
2103 return instr->RequiresHoleCheck() ? AssignEnvironment(result) : result; 2104 return instr->RequiresHoleCheck() ? AssignEnvironment(result) : result;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2138 LOperand* obj = (instr->access().IsExternalMemory() && 2139 LOperand* obj = (instr->access().IsExternalMemory() &&
2139 instr->access().offset() == 0) 2140 instr->access().offset() == 0)
2140 ? UseRegisterOrConstantAtStart(instr->object()) 2141 ? UseRegisterOrConstantAtStart(instr->object())
2141 : UseRegisterAtStart(instr->object()); 2142 : UseRegisterAtStart(instr->object());
2142 return DefineAsRegister(new(zone()) LLoadNamedField(obj)); 2143 return DefineAsRegister(new(zone()) LLoadNamedField(obj));
2143 } 2144 }
2144 2145
2145 2146
2146 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) { 2147 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) {
2147 LOperand* context = UseFixed(instr->context(), esi); 2148 LOperand* context = UseFixed(instr->context(), esi);
2148 LOperand* object = UseFixed(instr->object(), edx); 2149 LOperand* object = UseFixed(instr->object(), LoadIC::ReceiverRegister());
2149 LLoadNamedGeneric* result = new(zone()) LLoadNamedGeneric(context, object); 2150 LLoadNamedGeneric* result = new(zone()) LLoadNamedGeneric(context, object);
2150 return MarkAsCall(DefineFixed(result, eax), instr); 2151 return MarkAsCall(DefineFixed(result, eax), instr);
2151 } 2152 }
2152 2153
2153 2154
2154 LInstruction* LChunkBuilder::DoLoadFunctionPrototype( 2155 LInstruction* LChunkBuilder::DoLoadFunctionPrototype(
2155 HLoadFunctionPrototype* instr) { 2156 HLoadFunctionPrototype* instr) {
2156 return AssignEnvironment(DefineAsRegister( 2157 return AssignEnvironment(DefineAsRegister(
2157 new(zone()) LLoadFunctionPrototype(UseRegister(instr->function()), 2158 new(zone()) LLoadFunctionPrototype(UseRegister(instr->function()),
2158 TempRegister()))); 2159 TempRegister())));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2196 // LCodeGen::DoLoadKeyedFixedArray 2197 // LCodeGen::DoLoadKeyedFixedArray
2197 instr->RequiresHoleCheck()) { 2198 instr->RequiresHoleCheck()) {
2198 result = AssignEnvironment(result); 2199 result = AssignEnvironment(result);
2199 } 2200 }
2200 return result; 2201 return result;
2201 } 2202 }
2202 2203
2203 2204
2204 LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) { 2205 LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) {
2205 LOperand* context = UseFixed(instr->context(), esi); 2206 LOperand* context = UseFixed(instr->context(), esi);
2206 LOperand* object = UseFixed(instr->object(), edx); 2207 LOperand* object = UseFixed(instr->object(), KeyedLoadIC::ReceiverRegister());
2207 LOperand* key = UseFixed(instr->key(), ecx); 2208 LOperand* key = UseFixed(instr->key(), KeyedLoadIC::NameRegister());
2208 2209
2209 LLoadKeyedGeneric* result = 2210 LLoadKeyedGeneric* result =
2210 new(zone()) LLoadKeyedGeneric(context, object, key); 2211 new(zone()) LLoadKeyedGeneric(context, object, key);
2211 return MarkAsCall(DefineFixed(result, eax), instr); 2212 return MarkAsCall(DefineFixed(result, eax), instr);
2212 } 2213 }
2213 2214
2214 2215
2215 LOperand* LChunkBuilder::GetStoreKeyedValueOperand(HStoreKeyed* instr) { 2216 LOperand* LChunkBuilder::GetStoreKeyedValueOperand(HStoreKeyed* instr) {
2216 ElementsKind elements_kind = instr->elements_kind(); 2217 ElementsKind elements_kind = instr->elements_kind();
2217 2218
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
2666 LOperand* function = UseRegisterAtStart(instr->function()); 2667 LOperand* function = UseRegisterAtStart(instr->function());
2667 LAllocateBlockContext* result = 2668 LAllocateBlockContext* result =
2668 new(zone()) LAllocateBlockContext(context, function); 2669 new(zone()) LAllocateBlockContext(context, function);
2669 return MarkAsCall(DefineFixed(result, esi), instr); 2670 return MarkAsCall(DefineFixed(result, esi), instr);
2670 } 2671 }
2671 2672
2672 2673
2673 } } // namespace v8::internal 2674 } } // namespace v8::internal
2674 2675
2675 #endif // V8_TARGET_ARCH_IA32 2676 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/lithium-codegen-ia32.cc ('k') | src/ia32/stub-cache-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698