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

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

Issue 354013003: MIPS: Use IC register definitions in platform files. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 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/mips/lithium-codegen-mips.cc ('k') | src/mips/stub-cache-mips.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 #include "src/hydrogen-osr.h" 7 #include "src/hydrogen-osr.h"
8 #include "src/lithium-allocator-inl.h" 8 #include "src/lithium-allocator-inl.h"
9 #include "src/mips/lithium-codegen-mips.h" 9 #include "src/mips/lithium-codegen-mips.h"
10 #include "src/mips/lithium-mips.h" 10 #include "src/mips/lithium-mips.h"
(...skipping 2012 matching lines...) Expand 10 before | Expand all | Expand 10 after
2023 LInstruction* LChunkBuilder::DoLoadGlobalCell(HLoadGlobalCell* instr) { 2023 LInstruction* LChunkBuilder::DoLoadGlobalCell(HLoadGlobalCell* instr) {
2024 LLoadGlobalCell* result = new(zone()) LLoadGlobalCell; 2024 LLoadGlobalCell* result = new(zone()) LLoadGlobalCell;
2025 return instr->RequiresHoleCheck() 2025 return instr->RequiresHoleCheck()
2026 ? AssignEnvironment(DefineAsRegister(result)) 2026 ? AssignEnvironment(DefineAsRegister(result))
2027 : DefineAsRegister(result); 2027 : DefineAsRegister(result);
2028 } 2028 }
2029 2029
2030 2030
2031 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) { 2031 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
2032 LOperand* context = UseFixed(instr->context(), cp); 2032 LOperand* context = UseFixed(instr->context(), cp);
2033 LOperand* global_object = UseFixed(instr->global_object(), a0); 2033 LOperand* global_object = UseFixed(instr->global_object(),
2034 LoadIC::ReceiverRegister());
2034 LLoadGlobalGeneric* result = 2035 LLoadGlobalGeneric* result =
2035 new(zone()) LLoadGlobalGeneric(context, global_object); 2036 new(zone()) LLoadGlobalGeneric(context, global_object);
2036 return MarkAsCall(DefineFixed(result, v0), instr); 2037 return MarkAsCall(DefineFixed(result, v0), instr);
2037 } 2038 }
2038 2039
2039 2040
2040 LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) { 2041 LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) {
2041 LOperand* value = UseRegister(instr->value()); 2042 LOperand* value = UseRegister(instr->value());
2042 // Use a temp to check the value in the cell in the case where we perform 2043 // Use a temp to check the value in the cell in the case where we perform
2043 // a hole check. 2044 // a hole check.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2077 2078
2078 2079
2079 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) { 2080 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) {
2080 LOperand* obj = UseRegisterAtStart(instr->object()); 2081 LOperand* obj = UseRegisterAtStart(instr->object());
2081 return DefineAsRegister(new(zone()) LLoadNamedField(obj)); 2082 return DefineAsRegister(new(zone()) LLoadNamedField(obj));
2082 } 2083 }
2083 2084
2084 2085
2085 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) { 2086 LInstruction* LChunkBuilder::DoLoadNamedGeneric(HLoadNamedGeneric* instr) {
2086 LOperand* context = UseFixed(instr->context(), cp); 2087 LOperand* context = UseFixed(instr->context(), cp);
2087 LOperand* object = UseFixed(instr->object(), a0); 2088 LOperand* object = UseFixed(instr->object(), LoadIC::ReceiverRegister());
2088 LInstruction* result = 2089 LInstruction* result =
2089 DefineFixed(new(zone()) LLoadNamedGeneric(context, object), v0); 2090 DefineFixed(new(zone()) LLoadNamedGeneric(context, object), v0);
2090 return MarkAsCall(result, instr); 2091 return MarkAsCall(result, instr);
2091 } 2092 }
2092 2093
2093 2094
2094 LInstruction* LChunkBuilder::DoLoadFunctionPrototype( 2095 LInstruction* LChunkBuilder::DoLoadFunctionPrototype(
2095 HLoadFunctionPrototype* instr) { 2096 HLoadFunctionPrototype* instr) {
2096 return AssignEnvironment(DefineAsRegister( 2097 return AssignEnvironment(DefineAsRegister(
2097 new(zone()) LLoadFunctionPrototype(UseRegister(instr->function())))); 2098 new(zone()) LLoadFunctionPrototype(UseRegister(instr->function()))));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2137 // LCodeGen::DoLoadKeyedFixedArray 2138 // LCodeGen::DoLoadKeyedFixedArray
2138 instr->RequiresHoleCheck()) { 2139 instr->RequiresHoleCheck()) {
2139 result = AssignEnvironment(result); 2140 result = AssignEnvironment(result);
2140 } 2141 }
2141 return result; 2142 return result;
2142 } 2143 }
2143 2144
2144 2145
2145 LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) { 2146 LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) {
2146 LOperand* context = UseFixed(instr->context(), cp); 2147 LOperand* context = UseFixed(instr->context(), cp);
2147 LOperand* object = UseFixed(instr->object(), a1); 2148 LOperand* object = UseFixed(instr->object(), KeyedLoadIC::ReceiverRegister());
2148 LOperand* key = UseFixed(instr->key(), a0); 2149 LOperand* key = UseFixed(instr->key(), KeyedLoadIC::NameRegister());
2149 2150
2150 LInstruction* result = 2151 LInstruction* result =
2151 DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key), v0); 2152 DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key), v0);
2152 return MarkAsCall(result, instr); 2153 return MarkAsCall(result, instr);
2153 } 2154 }
2154 2155
2155 2156
2156 LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) { 2157 LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) {
2157 if (!instr->is_typed_elements()) { 2158 if (!instr->is_typed_elements()) {
2158 ASSERT(instr->elements()->representation().IsTagged()); 2159 ASSERT(instr->elements()->representation().IsTagged());
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
2534 LInstruction* LChunkBuilder::DoAllocateBlockContext( 2535 LInstruction* LChunkBuilder::DoAllocateBlockContext(
2535 HAllocateBlockContext* instr) { 2536 HAllocateBlockContext* instr) {
2536 LOperand* context = UseFixed(instr->context(), cp); 2537 LOperand* context = UseFixed(instr->context(), cp);
2537 LOperand* function = UseRegisterAtStart(instr->function()); 2538 LOperand* function = UseRegisterAtStart(instr->function());
2538 LAllocateBlockContext* result = 2539 LAllocateBlockContext* result =
2539 new(zone()) LAllocateBlockContext(context, function); 2540 new(zone()) LAllocateBlockContext(context, function);
2540 return MarkAsCall(DefineFixed(result, cp), instr); 2541 return MarkAsCall(DefineFixed(result, cp), instr);
2541 } 2542 }
2542 2543
2543 } } // namespace v8::internal 2544 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/mips/lithium-codegen-mips.cc ('k') | src/mips/stub-cache-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698