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 3255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3266 // Replay effects of this instruction on the given environment. | 3266 // Replay effects of this instruction on the given environment. |
3267 void ReplayEnvironment(HEnvironment* env); | 3267 void ReplayEnvironment(HEnvironment* env); |
3268 | 3268 |
3269 DECLARE_CONCRETE_INSTRUCTION(CapturedObject) | 3269 DECLARE_CONCRETE_INSTRUCTION(CapturedObject) |
3270 | 3270 |
3271 private: | 3271 private: |
3272 int capture_id_; | 3272 int capture_id_; |
3273 }; | 3273 }; |
3274 | 3274 |
3275 | 3275 |
| 3276 class HGraphBuilder; |
3276 class HConstant V8_FINAL : public HTemplateInstruction<0> { | 3277 class HConstant V8_FINAL : public HTemplateInstruction<0> { |
3277 public: | 3278 public: |
3278 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, int32_t); | 3279 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, int32_t); |
3279 DECLARE_INSTRUCTION_FACTORY_P2(HConstant, int32_t, Representation); | 3280 DECLARE_INSTRUCTION_FACTORY_P2(HConstant, int32_t, Representation); |
3280 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, double); | 3281 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, double); |
3281 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, Handle<Object>); | 3282 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, Handle<Object>); |
3282 DECLARE_INSTRUCTION_FACTORY_P2(HConstant, Handle<Map>, UniqueValueId); | 3283 DECLARE_INSTRUCTION_FACTORY_P2(HConstant, Handle<Map>, UniqueValueId); |
3283 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, ExternalReference); | 3284 DECLARE_INSTRUCTION_FACTORY_P1(HConstant, ExternalReference); |
3284 | 3285 |
3285 static HConstant* CreateAndInsertAfter(Zone* zone, | 3286 static HConstant* CreateAndInsertAfter(Zone* zone, |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3372 if (HasInteger32Value()) return Representation::Integer32(); | 3373 if (HasInteger32Value()) return Representation::Integer32(); |
3373 if (HasNumberValue()) return Representation::Double(); | 3374 if (HasNumberValue()) return Representation::Double(); |
3374 if (HasExternalReferenceValue()) return Representation::External(); | 3375 if (HasExternalReferenceValue()) return Representation::External(); |
3375 return Representation::Tagged(); | 3376 return Representation::Tagged(); |
3376 } | 3377 } |
3377 | 3378 |
3378 virtual bool EmitAtUses() V8_OVERRIDE; | 3379 virtual bool EmitAtUses() V8_OVERRIDE; |
3379 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 3380 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
3380 HConstant* CopyToRepresentation(Representation r, Zone* zone) const; | 3381 HConstant* CopyToRepresentation(Representation r, Zone* zone) const; |
3381 Maybe<HConstant*> CopyToTruncatedInt32(Zone* zone); | 3382 Maybe<HConstant*> CopyToTruncatedInt32(Zone* zone); |
3382 Maybe<HConstant*> CopyToTruncatedNumber(Zone* zone); | 3383 Maybe<HConstant*> CopyToTruncatedNumberAndAdd(Zone* zone, |
| 3384 HGraphBuilder* builder); |
3383 bool HasInteger32Value() const { return has_int32_value_; } | 3385 bool HasInteger32Value() const { return has_int32_value_; } |
3384 int32_t Integer32Value() const { | 3386 int32_t Integer32Value() const { |
3385 ASSERT(HasInteger32Value()); | 3387 ASSERT(HasInteger32Value()); |
3386 return int32_value_; | 3388 return int32_value_; |
3387 } | 3389 } |
3388 bool HasSmiValue() const { return has_smi_value_; } | 3390 bool HasSmiValue() const { return has_smi_value_; } |
3389 bool HasDoubleValue() const { return has_double_value_; } | 3391 bool HasDoubleValue() const { return has_double_value_; } |
3390 double DoubleValue() const { | 3392 double DoubleValue() const { |
3391 ASSERT(HasDoubleValue()); | 3393 ASSERT(HasDoubleValue()); |
3392 return double_value_; | 3394 return double_value_; |
(...skipping 3582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6975 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 6977 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
6976 }; | 6978 }; |
6977 | 6979 |
6978 | 6980 |
6979 #undef DECLARE_INSTRUCTION | 6981 #undef DECLARE_INSTRUCTION |
6980 #undef DECLARE_CONCRETE_INSTRUCTION | 6982 #undef DECLARE_CONCRETE_INSTRUCTION |
6981 | 6983 |
6982 } } // namespace v8::internal | 6984 } } // namespace v8::internal |
6983 | 6985 |
6984 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 6986 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |