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

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

Issue 195023002: Fix uses of range analysis results in HChange. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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 | « no previous file | src/a64/lithium-a64.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 V(FunctionLiteral) \ 106 V(FunctionLiteral) \
107 V(GetCachedArrayIndex) \ 107 V(GetCachedArrayIndex) \
108 V(Goto) \ 108 V(Goto) \
109 V(HasCachedArrayIndexAndBranch) \ 109 V(HasCachedArrayIndexAndBranch) \
110 V(HasInstanceTypeAndBranch) \ 110 V(HasInstanceTypeAndBranch) \
111 V(InnerAllocatedObject) \ 111 V(InnerAllocatedObject) \
112 V(InstanceOf) \ 112 V(InstanceOf) \
113 V(InstanceOfKnownGlobal) \ 113 V(InstanceOfKnownGlobal) \
114 V(InstructionGap) \ 114 V(InstructionGap) \
115 V(Integer32ToDouble) \ 115 V(Integer32ToDouble) \
116 V(Integer32ToSmi) \
117 V(InvokeFunction) \ 116 V(InvokeFunction) \
118 V(IsConstructCallAndBranch) \ 117 V(IsConstructCallAndBranch) \
119 V(IsObjectAndBranch) \ 118 V(IsObjectAndBranch) \
120 V(IsSmiAndBranch) \ 119 V(IsSmiAndBranch) \
121 V(IsStringAndBranch) \ 120 V(IsStringAndBranch) \
122 V(IsUndetectableAndBranch) \ 121 V(IsUndetectableAndBranch) \
123 V(Label) \ 122 V(Label) \
124 V(LazyBailout) \ 123 V(LazyBailout) \
125 V(LoadContextSlot) \ 124 V(LoadContextSlot) \
126 V(LoadFieldByIndex) \ 125 V(LoadFieldByIndex) \
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 V(SubS) \ 183 V(SubS) \
185 V(TaggedToI) \ 184 V(TaggedToI) \
186 V(ThisFunction) \ 185 V(ThisFunction) \
187 V(ToFastProperties) \ 186 V(ToFastProperties) \
188 V(TransitionElementsKind) \ 187 V(TransitionElementsKind) \
189 V(TrapAllocationMemento) \ 188 V(TrapAllocationMemento) \
190 V(TruncateDoubleToIntOrSmi) \ 189 V(TruncateDoubleToIntOrSmi) \
191 V(Typeof) \ 190 V(Typeof) \
192 V(TypeofIsAndBranch) \ 191 V(TypeofIsAndBranch) \
193 V(Uint32ToDouble) \ 192 V(Uint32ToDouble) \
194 V(Uint32ToSmi) \
195 V(UnknownOSRValue) \ 193 V(UnknownOSRValue) \
196 V(WrapReceiver) 194 V(WrapReceiver)
197 195
198 196
199 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ 197 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \
200 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \ 198 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \
201 return LInstruction::k##type; \ 199 return LInstruction::k##type; \
202 } \ 200 } \
203 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \ 201 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \
204 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \ 202 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \
(...skipping 1295 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 explicit LInteger32ToDouble(LOperand* value) { 1498 explicit LInteger32ToDouble(LOperand* value) {
1501 inputs_[0] = value; 1499 inputs_[0] = value;
1502 } 1500 }
1503 1501
1504 LOperand* value() { return inputs_[0]; } 1502 LOperand* value() { return inputs_[0]; }
1505 1503
1506 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") 1504 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double")
1507 }; 1505 };
1508 1506
1509 1507
1510 class LInteger32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1511 public:
1512 explicit LInteger32ToSmi(LOperand* value) {
1513 inputs_[0] = value;
1514 }
1515
1516 LOperand* value() { return inputs_[0]; }
1517
1518 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-smi")
1519 DECLARE_HYDROGEN_ACCESSOR(Change)
1520 };
1521
1522
1523 class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> { 1508 class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> {
1524 public: 1509 public:
1525 LCallWithDescriptor(const CallInterfaceDescriptor* descriptor, 1510 LCallWithDescriptor(const CallInterfaceDescriptor* descriptor,
1526 ZoneList<LOperand*>& operands, 1511 ZoneList<LOperand*>& operands,
1527 Zone* zone) 1512 Zone* zone)
1528 : descriptor_(descriptor), 1513 : descriptor_(descriptor),
1529 inputs_(descriptor->environment_length() + 1, zone) { 1514 inputs_(descriptor->environment_length() + 1, zone) {
1530 ASSERT(descriptor->environment_length() + 1 == operands.length()); 1515 ASSERT(descriptor->environment_length() + 1 == operands.length());
1531 inputs_.AddAll(operands, zone); 1516 inputs_.AddAll(operands, zone);
1532 } 1517 }
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
2327 2312
2328 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2313 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2329 public: 2314 public:
2330 explicit LSmiTag(LOperand* value) { 2315 explicit LSmiTag(LOperand* value) {
2331 inputs_[0] = value; 2316 inputs_[0] = value;
2332 } 2317 }
2333 2318
2334 LOperand* value() { return inputs_[0]; } 2319 LOperand* value() { return inputs_[0]; }
2335 2320
2336 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag") 2321 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag")
2322 DECLARE_HYDROGEN_ACCESSOR(Change)
2337 }; 2323 };
2338 2324
2339 2325
2340 class LSmiUntag V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2326 class LSmiUntag V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2341 public: 2327 public:
2342 LSmiUntag(LOperand* value, bool needs_check) 2328 LSmiUntag(LOperand* value, bool needs_check)
2343 : needs_check_(needs_check) { 2329 : needs_check_(needs_check) {
2344 inputs_[0] = value; 2330 inputs_[0] = value;
2345 } 2331 }
2346 2332
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
2890 explicit LUint32ToDouble(LOperand* value) { 2876 explicit LUint32ToDouble(LOperand* value) {
2891 inputs_[0] = value; 2877 inputs_[0] = value;
2892 } 2878 }
2893 2879
2894 LOperand* value() { return inputs_[0]; } 2880 LOperand* value() { return inputs_[0]; }
2895 2881
2896 DECLARE_CONCRETE_INSTRUCTION(Uint32ToDouble, "uint32-to-double") 2882 DECLARE_CONCRETE_INSTRUCTION(Uint32ToDouble, "uint32-to-double")
2897 }; 2883 };
2898 2884
2899 2885
2900 class LUint32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2901 public:
2902 explicit LUint32ToSmi(LOperand* value) {
2903 inputs_[0] = value;
2904 }
2905
2906 LOperand* value() { return inputs_[0]; }
2907
2908 DECLARE_CONCRETE_INSTRUCTION(Uint32ToSmi, "uint32-to-smi")
2909 DECLARE_HYDROGEN_ACCESSOR(Change)
2910 };
2911
2912
2913 class LCheckMapValue V8_FINAL : public LTemplateInstruction<0, 2, 1> { 2886 class LCheckMapValue V8_FINAL : public LTemplateInstruction<0, 2, 1> {
2914 public: 2887 public:
2915 LCheckMapValue(LOperand* value, LOperand* map, LOperand* temp) { 2888 LCheckMapValue(LOperand* value, LOperand* map, LOperand* temp) {
2916 inputs_[0] = value; 2889 inputs_[0] = value;
2917 inputs_[1] = map; 2890 inputs_[1] = map;
2918 temps_[0] = temp; 2891 temps_[0] = temp;
2919 } 2892 }
2920 2893
2921 LOperand* value() { return inputs_[0]; } 2894 LOperand* value() { return inputs_[0]; }
2922 LOperand* map() { return inputs_[1]; } 2895 LOperand* map() { return inputs_[1]; }
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
3120 3093
3121 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 3094 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
3122 }; 3095 };
3123 3096
3124 #undef DECLARE_HYDROGEN_ACCESSOR 3097 #undef DECLARE_HYDROGEN_ACCESSOR
3125 #undef DECLARE_CONCRETE_INSTRUCTION 3098 #undef DECLARE_CONCRETE_INSTRUCTION
3126 3099
3127 } } // namespace v8::internal 3100 } } // namespace v8::internal
3128 3101
3129 #endif // V8_A64_LITHIUM_A64_H_ 3102 #endif // V8_A64_LITHIUM_A64_H_
OLDNEW
« no previous file with comments | « no previous file | src/a64/lithium-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698