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

Side by Side Diff: src/x64/lithium-x64.h

Issue 6614017: X64 Crankshaft: Fix and enable StoreContextSlot in lithium codegen on x64. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 9 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/x64/lithium-codegen-x64.cc ('k') | src/x64/lithium-x64.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 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 1224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 explicit LStoreGlobal(LOperand* value, LOperand* temp) { 1235 explicit LStoreGlobal(LOperand* value, LOperand* temp) {
1236 inputs_[0] = value; 1236 inputs_[0] = value;
1237 temps_[0] = temp; 1237 temps_[0] = temp;
1238 } 1238 }
1239 1239
1240 DECLARE_CONCRETE_INSTRUCTION(StoreGlobal, "store-global") 1240 DECLARE_CONCRETE_INSTRUCTION(StoreGlobal, "store-global")
1241 DECLARE_HYDROGEN_ACCESSOR(StoreGlobal) 1241 DECLARE_HYDROGEN_ACCESSOR(StoreGlobal)
1242 }; 1242 };
1243 1243
1244 1244
1245 class LLoadContextSlot: public LTemplateInstruction<1, 1, 0> { 1245 class LLoadContextSlot: public LTemplateInstruction<1, 0, 0> {
1246 public: 1246 public:
1247 explicit LLoadContextSlot(LOperand* context) { 1247 explicit LLoadContextSlot() {
1248 inputs_[0] = context;
1249 } 1248 }
1250 1249
1251 DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot") 1250 DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot")
1252 DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot) 1251 DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot)
1253 1252
1254 LOperand* context() { return InputAt(0); }
1255 int slot_index() { return hydrogen()->slot_index(); } 1253 int slot_index() { return hydrogen()->slot_index(); }
1256 1254
1257 virtual void PrintDataTo(StringStream* stream); 1255 virtual void PrintDataTo(StringStream* stream);
1258 }; 1256 };
1259 1257
1260 1258
1261 class LStoreContextSlot: public LTemplateInstruction<0, 2, 0> { 1259 class LStoreContextSlot: public LTemplateInstruction<0, 1, 2> {
1262 public: 1260 public:
1263 LStoreContextSlot(LOperand* context, LOperand* value) { 1261 LStoreContextSlot(LOperand* value, LOperand* temp_1, LOperand* temp_2) {
1264 inputs_[0] = context; 1262 inputs_[0] = value;
1265 inputs_[1] = value; 1263 temps_[0] = temp_1;
1264 temps_[1] = temp_2;
1266 } 1265 }
1267 1266
1268 DECLARE_CONCRETE_INSTRUCTION(StoreContextSlot, "store-context-slot") 1267 DECLARE_CONCRETE_INSTRUCTION(StoreContextSlot, "store-context-slot")
1269 DECLARE_HYDROGEN_ACCESSOR(StoreContextSlot) 1268 DECLARE_HYDROGEN_ACCESSOR(StoreContextSlot)
1270 1269
1271 LOperand* context() { return InputAt(0); } 1270 LOperand* value() { return InputAt(0); }
1272 LOperand* value() { return InputAt(1); }
1273 int slot_index() { return hydrogen()->slot_index(); } 1271 int slot_index() { return hydrogen()->slot_index(); }
1274 int needs_write_barrier() { return hydrogen()->NeedsWriteBarrier(); } 1272 int needs_write_barrier() { return hydrogen()->NeedsWriteBarrier(); }
1275 1273
1276 virtual void PrintDataTo(StringStream* stream); 1274 virtual void PrintDataTo(StringStream* stream);
1277 }; 1275 };
1278 1276
1279 1277
1280 class LPushArgument: public LTemplateInstruction<0, 1, 0> { 1278 class LPushArgument: public LTemplateInstruction<0, 1, 0> {
1281 public: 1279 public:
1282 explicit LPushArgument(LOperand* value) { 1280 explicit LPushArgument(LOperand* value) {
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after
2055 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2053 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2056 }; 2054 };
2057 2055
2058 #undef DECLARE_HYDROGEN_ACCESSOR 2056 #undef DECLARE_HYDROGEN_ACCESSOR
2059 #undef DECLARE_INSTRUCTION 2057 #undef DECLARE_INSTRUCTION
2060 #undef DECLARE_CONCRETE_INSTRUCTION 2058 #undef DECLARE_CONCRETE_INSTRUCTION
2061 2059
2062 } } // namespace v8::int 2060 } } // namespace v8::int
2063 2061
2064 #endif // V8_X64_LITHIUM_X64_H_ 2062 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW
« no previous file with comments | « src/x64/lithium-codegen-x64.cc ('k') | src/x64/lithium-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698