| OLD | NEW | 
|---|
| 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 
| 2 // All Rights Reserved. | 2 // All Rights Reserved. | 
| 3 // | 3 // | 
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without | 
| 5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are | 
| 6 // met: | 6 // met: | 
| 7 // | 7 // | 
| 8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, | 
| 9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. | 
| 10 // | 10 // | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 29 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 29 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
| 30 | 30 | 
| 31 // The original source code covered by the above license above has been | 31 // The original source code covered by the above license above has been | 
| 32 // modified significantly by Google Inc. | 32 // modified significantly by Google Inc. | 
| 33 // Copyright 2011 the V8 project authors. All rights reserved. | 33 // Copyright 2011 the V8 project authors. All rights reserved. | 
| 34 | 34 | 
| 35 #ifndef V8_ASSEMBLER_H_ | 35 #ifndef V8_ASSEMBLER_H_ | 
| 36 #define V8_ASSEMBLER_H_ | 36 #define V8_ASSEMBLER_H_ | 
| 37 | 37 | 
| 38 #include "allocation.h" | 38 #include "allocation.h" | 
|  | 39 #include "api.h" | 
| 39 #include "gdb-jit.h" | 40 #include "gdb-jit.h" | 
| 40 #include "runtime.h" | 41 #include "runtime.h" | 
| 41 #include "token.h" | 42 #include "token.h" | 
| 42 | 43 | 
| 43 namespace v8 { | 44 namespace v8 { | 
| 44 namespace internal { | 45 namespace internal { | 
| 45 | 46 | 
| 46 const unsigned kNoASTId = -1; | 47 const unsigned kNoASTId = -1; | 
| 47 // ----------------------------------------------------------------------------- | 48 // ----------------------------------------------------------------------------- | 
| 48 // Platform independent assembler base class. | 49 // Platform independent assembler base class. | 
| 49 | 50 | 
| 50 class AssemblerBase: public Malloced { | 51 class AssemblerBase: public Malloced { | 
| 51  public: | 52  public: | 
| 52   explicit AssemblerBase(Isolate* isolate); | 53   explicit AssemblerBase(Isolate* isolate); | 
| 53 | 54 | 
| 54   Isolate* isolate() const { return isolate_; } | 55   Isolate* isolate() const { return isolate_; } | 
| 55   int jit_cookie() { return jit_cookie_; } | 56   int jit_cookie() { return jit_cookie_; } | 
| 56 | 57 | 
| 57  private: | 58  private: | 
| 58   Isolate* isolate_; | 59   Isolate* isolate_; | 
| 59   int jit_cookie_; | 60   int jit_cookie_; | 
| 60 }; | 61 }; | 
| 61 | 62 | 
|  | 63 static const uint32_t kHoleNanUpper32 = 0x7FFFFFFF; | 
|  | 64 static const uint32_t kHoleNanLower32 = 0xFFFFFFFF; | 
|  | 65 static const uint32_t kCanonicalNonHoleNanUpper32 = 0x7FF10000; | 
|  | 66 static const uint32_t kCanonicalNonHoleNanLower32 = 0xFFFFFFFF; | 
|  | 67 | 
|  | 68 extern uint64_t kHoleNanInt64; | 
|  | 69 extern uint64_t kCanonicalNonHoleNanInt64; | 
|  | 70 | 
| 62 // ----------------------------------------------------------------------------- | 71 // ----------------------------------------------------------------------------- | 
| 63 // Common double constants. | 72 // Common double constants. | 
| 64 | 73 | 
| 65 class DoubleConstant: public AllStatic { | 74 class DoubleConstant: public AllStatic { | 
| 66  public: | 75  public: | 
| 67   static const double min_int; | 76   static const double min_int; | 
| 68   static const double one_half; | 77   static const double one_half; | 
| 69   static const double minus_zero; | 78   static const double minus_zero; | 
| 70   static const double zero; | 79   static const double zero; | 
| 71   static const double uint8_max_value; | 80   static const double uint8_max_value; | 
| 72   static const double negative_infinity; | 81   static const double negative_infinity; | 
| 73   static const double nan; | 82   static const double nan; | 
|  | 83   static const double canonical_non_hole_nan; | 
|  | 84   static const double the_hole_nan; | 
| 74 }; | 85 }; | 
| 75 | 86 | 
| 76 | 87 | 
| 77 // ----------------------------------------------------------------------------- | 88 // ----------------------------------------------------------------------------- | 
| 78 // Labels represent pc locations; they are typically jump or call targets. | 89 // Labels represent pc locations; they are typically jump or call targets. | 
| 79 // After declaration, a label can be freely used to denote known or (yet) | 90 // After declaration, a label can be freely used to denote known or (yet) | 
| 80 // unknown pc location. Assembler::bind() is used to bind a label to the | 91 // unknown pc location. Assembler::bind() is used to bind a label to the | 
| 81 // current pc. A label can be bound only once. | 92 // current pc. A label can be bound only once. | 
| 82 | 93 | 
| 83 class Label BASE_EMBEDDED { | 94 class Label BASE_EMBEDDED { | 
| (...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 622 | 633 | 
| 623   static ExternalReference scheduled_exception_address(Isolate* isolate); | 634   static ExternalReference scheduled_exception_address(Isolate* isolate); | 
| 624 | 635 | 
| 625   // Static variables containing common double constants. | 636   // Static variables containing common double constants. | 
| 626   static ExternalReference address_of_min_int(); | 637   static ExternalReference address_of_min_int(); | 
| 627   static ExternalReference address_of_one_half(); | 638   static ExternalReference address_of_one_half(); | 
| 628   static ExternalReference address_of_minus_zero(); | 639   static ExternalReference address_of_minus_zero(); | 
| 629   static ExternalReference address_of_zero(); | 640   static ExternalReference address_of_zero(); | 
| 630   static ExternalReference address_of_uint8_max_value(); | 641   static ExternalReference address_of_uint8_max_value(); | 
| 631   static ExternalReference address_of_negative_infinity(); | 642   static ExternalReference address_of_negative_infinity(); | 
| 632   static ExternalReference address_of_nan(); | 643   static ExternalReference address_of_canonical_non_hole_nan(); | 
|  | 644   static ExternalReference address_of_the_hole_nan(); | 
| 633 | 645 | 
| 634   static ExternalReference math_sin_double_function(Isolate* isolate); | 646   static ExternalReference math_sin_double_function(Isolate* isolate); | 
| 635   static ExternalReference math_cos_double_function(Isolate* isolate); | 647   static ExternalReference math_cos_double_function(Isolate* isolate); | 
| 636   static ExternalReference math_log_double_function(Isolate* isolate); | 648   static ExternalReference math_log_double_function(Isolate* isolate); | 
| 637 | 649 | 
| 638   Address address() const {return reinterpret_cast<Address>(address_);} | 650   Address address() const {return reinterpret_cast<Address>(address_);} | 
| 639 | 651 | 
| 640 #ifdef ENABLE_DEBUGGER_SUPPORT | 652 #ifdef ENABLE_DEBUGGER_SUPPORT | 
| 641   // Function Debug::Break() | 653   // Function Debug::Break() | 
| 642   static ExternalReference debug_break(Isolate* isolate); | 654   static ExternalReference debug_break(Isolate* isolate); | 
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 853  public: | 865  public: | 
| 854   NullCallWrapper() { } | 866   NullCallWrapper() { } | 
| 855   virtual ~NullCallWrapper() { } | 867   virtual ~NullCallWrapper() { } | 
| 856   virtual void BeforeCall(int call_size) const { } | 868   virtual void BeforeCall(int call_size) const { } | 
| 857   virtual void AfterCall() const { } | 869   virtual void AfterCall() const { } | 
| 858 }; | 870 }; | 
| 859 | 871 | 
| 860 } }  // namespace v8::internal | 872 } }  // namespace v8::internal | 
| 861 | 873 | 
| 862 #endif  // V8_ASSEMBLER_H_ | 874 #endif  // V8_ASSEMBLER_H_ | 
| OLD | NEW | 
|---|