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

Side by Side Diff: include/v8.h

Issue 436001: Remove the different length string types... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years 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/arm/codegen-arm.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 2007-2009 the V8 project authors. All rights reserved. 1 // Copyright 2007-2009 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 2801 matching lines...) Expand 10 before | Expand all | Expand 10 after
2812 static inline int SmiToInt(internal::Object* value) { 2812 static inline int SmiToInt(internal::Object* value) {
2813 int shift_bits = kSmiTagSize + kSmiShiftSize; 2813 int shift_bits = kSmiTagSize + kSmiShiftSize;
2814 // Shift down and throw away top 32 bits. 2814 // Shift down and throw away top 32 bits.
2815 return static_cast<int>(reinterpret_cast<intptr_t>(value) >> shift_bits); 2815 return static_cast<int>(reinterpret_cast<intptr_t>(value) >> shift_bits);
2816 } 2816 }
2817 }; 2817 };
2818 2818
2819 const int kSmiShiftSize = SmiConstants<sizeof(void*)>::kSmiShiftSize; 2819 const int kSmiShiftSize = SmiConstants<sizeof(void*)>::kSmiShiftSize;
2820 const int kSmiValueSize = SmiConstants<sizeof(void*)>::kSmiValueSize; 2820 const int kSmiValueSize = SmiConstants<sizeof(void*)>::kSmiValueSize;
2821 2821
2822 template <size_t ptr_size> struct InternalConstants;
2823
2824 // Internal constants for 32-bit systems.
2825 template <> struct InternalConstants<4> {
2826 static const int kStringResourceOffset = 3 * sizeof(void*);
2827 };
2828
2829 // Internal constants for 64-bit systems.
2830 template <> struct InternalConstants<8> {
2831 static const int kStringResourceOffset = 2 * sizeof(void*);
2832 };
2833
2822 /** 2834 /**
2823 * This class exports constants and functionality from within v8 that 2835 * This class exports constants and functionality from within v8 that
2824 * is necessary to implement inline functions in the v8 api. Don't 2836 * is necessary to implement inline functions in the v8 api. Don't
2825 * depend on functions and constants defined here. 2837 * depend on functions and constants defined here.
2826 */ 2838 */
2827 class Internals { 2839 class Internals {
2828 public: 2840 public:
2829 2841
2830 // These values match non-compiler-dependent values defined within 2842 // These values match non-compiler-dependent values defined within
2831 // the implementation of v8. 2843 // the implementation of v8.
2832 static const int kHeapObjectMapOffset = 0; 2844 static const int kHeapObjectMapOffset = 0;
2833 static const int kMapInstanceTypeOffset = sizeof(void*) + sizeof(int); 2845 static const int kMapInstanceTypeOffset = sizeof(void*) + sizeof(int);
2834 static const int kStringResourceOffset = 2 * sizeof(void*); 2846 static const int kStringResourceOffset =
2847 InternalConstants<sizeof(void*)>::kStringResourceOffset;
2848
2835 static const int kProxyProxyOffset = sizeof(void*); 2849 static const int kProxyProxyOffset = sizeof(void*);
2836 static const int kJSObjectHeaderSize = 3 * sizeof(void*); 2850 static const int kJSObjectHeaderSize = 3 * sizeof(void*);
2837 static const int kFullStringRepresentationMask = 0x07; 2851 static const int kFullStringRepresentationMask = 0x07;
2838 static const int kExternalTwoByteRepresentationTag = 0x03; 2852 static const int kExternalTwoByteRepresentationTag = 0x03;
2839 2853
2840 // These constants are compiler dependent so their values must be 2854 // These constants are compiler dependent so their values must be
2841 // defined within the implementation. 2855 // defined within the implementation.
2842 V8EXPORT static int kJSObjectType; 2856 V8EXPORT static int kJSObjectType;
2843 V8EXPORT static int kFirstNonstringType; 2857 V8EXPORT static int kFirstNonstringType;
2844 V8EXPORT static int kProxyType; 2858 V8EXPORT static int kProxyType;
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
3206 3220
3207 } // namespace v8 3221 } // namespace v8
3208 3222
3209 3223
3210 #undef V8EXPORT 3224 #undef V8EXPORT
3211 #undef V8EXPORT_INLINE 3225 #undef V8EXPORT_INLINE
3212 #undef TYPE_CHECK 3226 #undef TYPE_CHECK
3213 3227
3214 3228
3215 #endif // V8_H_ 3229 #endif // V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698