| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1370 } | 1370 } |
| 1371 | 1371 |
| 1372 LOperand* string() const { return inputs_[0]; } | 1372 LOperand* string() const { return inputs_[0]; } |
| 1373 LOperand* index() const { return inputs_[1]; } | 1373 LOperand* index() const { return inputs_[1]; } |
| 1374 | 1374 |
| 1375 DECLARE_CONCRETE_INSTRUCTION(SeqStringGetChar, "seq-string-get-char") | 1375 DECLARE_CONCRETE_INSTRUCTION(SeqStringGetChar, "seq-string-get-char") |
| 1376 DECLARE_HYDROGEN_ACCESSOR(SeqStringGetChar) | 1376 DECLARE_HYDROGEN_ACCESSOR(SeqStringGetChar) |
| 1377 }; | 1377 }; |
| 1378 | 1378 |
| 1379 | 1379 |
| 1380 class LSeqStringSetChar V8_FINAL : public LTemplateInstruction<1, 3, 0> { | 1380 class LSeqStringSetChar V8_FINAL : public LTemplateInstruction<1, 4, 0> { |
| 1381 public: | 1381 public: |
| 1382 LSeqStringSetChar(LOperand* string, | 1382 LSeqStringSetChar(LOperand* context, |
| 1383 LOperand* string, |
| 1383 LOperand* index, | 1384 LOperand* index, |
| 1384 LOperand* value) { | 1385 LOperand* value) { |
| 1385 inputs_[0] = string; | 1386 inputs_[0] = context; |
| 1386 inputs_[1] = index; | 1387 inputs_[1] = string; |
| 1387 inputs_[2] = value; | 1388 inputs_[2] = index; |
| 1389 inputs_[3] = value; |
| 1388 } | 1390 } |
| 1389 | 1391 |
| 1390 LOperand* string() { return inputs_[0]; } | 1392 LOperand* string() { return inputs_[1]; } |
| 1391 LOperand* index() { return inputs_[1]; } | 1393 LOperand* index() { return inputs_[2]; } |
| 1392 LOperand* value() { return inputs_[2]; } | 1394 LOperand* value() { return inputs_[3]; } |
| 1393 | 1395 |
| 1394 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar, "seq-string-set-char") | 1396 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar, "seq-string-set-char") |
| 1395 DECLARE_HYDROGEN_ACCESSOR(SeqStringSetChar) | 1397 DECLARE_HYDROGEN_ACCESSOR(SeqStringSetChar) |
| 1396 }; | 1398 }; |
| 1397 | 1399 |
| 1398 | 1400 |
| 1399 class LThrow V8_FINAL : public LTemplateInstruction<0, 2, 0> { | 1401 class LThrow V8_FINAL : public LTemplateInstruction<0, 2, 0> { |
| 1400 public: | 1402 public: |
| 1401 LThrow(LOperand* context, LOperand* value) { | 1403 LThrow(LOperand* context, LOperand* value) { |
| 1402 inputs_[0] = context; | 1404 inputs_[0] = context; |
| (...skipping 1507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2910 LInstruction* DefineX87TOS(LTemplateInstruction<1, I, T>* instr); | 2912 LInstruction* DefineX87TOS(LTemplateInstruction<1, I, T>* instr); |
| 2911 // Assigns an environment to an instruction. An instruction which can | 2913 // Assigns an environment to an instruction. An instruction which can |
| 2912 // deoptimize must have an environment. | 2914 // deoptimize must have an environment. |
| 2913 LInstruction* AssignEnvironment(LInstruction* instr); | 2915 LInstruction* AssignEnvironment(LInstruction* instr); |
| 2914 // Assigns a pointer map to an instruction. An instruction which can | 2916 // Assigns a pointer map to an instruction. An instruction which can |
| 2915 // trigger a GC or a lazy deoptimization must have a pointer map. | 2917 // trigger a GC or a lazy deoptimization must have a pointer map. |
| 2916 LInstruction* AssignPointerMap(LInstruction* instr); | 2918 LInstruction* AssignPointerMap(LInstruction* instr); |
| 2917 | 2919 |
| 2918 enum CanDeoptimize { CAN_DEOPTIMIZE_EAGERLY, CANNOT_DEOPTIMIZE_EAGERLY }; | 2920 enum CanDeoptimize { CAN_DEOPTIMIZE_EAGERLY, CANNOT_DEOPTIMIZE_EAGERLY }; |
| 2919 | 2921 |
| 2922 LOperand* GetSeqStringSetCharOperand(HSeqStringSetChar* instr); |
| 2923 |
| 2920 // Marks a call for the register allocator. Assigns a pointer map to | 2924 // Marks a call for the register allocator. Assigns a pointer map to |
| 2921 // support GC and lazy deoptimization. Assigns an environment to support | 2925 // support GC and lazy deoptimization. Assigns an environment to support |
| 2922 // eager deoptimization if CAN_DEOPTIMIZE_EAGERLY. | 2926 // eager deoptimization if CAN_DEOPTIMIZE_EAGERLY. |
| 2923 LInstruction* MarkAsCall( | 2927 LInstruction* MarkAsCall( |
| 2924 LInstruction* instr, | 2928 LInstruction* instr, |
| 2925 HInstruction* hinstr, | 2929 HInstruction* hinstr, |
| 2926 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); | 2930 CanDeoptimize can_deoptimize = CANNOT_DEOPTIMIZE_EAGERLY); |
| 2927 | 2931 |
| 2928 LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env, | 2932 LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env, |
| 2929 int* argument_index_accumulator, | 2933 int* argument_index_accumulator, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 2955 | 2959 |
| 2956 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2960 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2957 }; | 2961 }; |
| 2958 | 2962 |
| 2959 #undef DECLARE_HYDROGEN_ACCESSOR | 2963 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2960 #undef DECLARE_CONCRETE_INSTRUCTION | 2964 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2961 | 2965 |
| 2962 } } // namespace v8::internal | 2966 } } // namespace v8::internal |
| 2963 | 2967 |
| 2964 #endif // V8_IA32_LITHIUM_IA32_H_ | 2968 #endif // V8_IA32_LITHIUM_IA32_H_ |
| OLD | NEW |