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 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 // invalid/uninitialized position value. | 178 // invalid/uninitialized position value. |
179 static const int kNoPosition = -1; | 179 static const int kNoPosition = -1; |
180 | 180 |
181 enum Mode { | 181 enum Mode { |
182 // Please note the order is important (see IsCodeTarget, IsGCRelocMode). | 182 // Please note the order is important (see IsCodeTarget, IsGCRelocMode). |
183 CONSTRUCT_CALL, // code target that is a call to a JavaScript constructor. | 183 CONSTRUCT_CALL, // code target that is a call to a JavaScript constructor. |
184 CODE_TARGET_CONTEXT, // Code target used for contextual loads. | 184 CODE_TARGET_CONTEXT, // Code target used for contextual loads. |
185 DEBUG_BREAK, // Code target for the debugger statement. | 185 DEBUG_BREAK, // Code target for the debugger statement. |
186 CODE_TARGET, // Code target which is not any of the above. | 186 CODE_TARGET, // Code target which is not any of the above. |
187 EMBEDDED_OBJECT, | 187 EMBEDDED_OBJECT, |
188 | |
189 GLOBAL_PROPERTY_CELL, | 188 GLOBAL_PROPERTY_CELL, |
190 | 189 |
191 // Everything after runtime_entry (inclusive) is not GC'ed. | 190 // Everything after runtime_entry (inclusive) is not GC'ed. |
192 RUNTIME_ENTRY, | 191 RUNTIME_ENTRY, |
193 JS_RETURN, // Marks start of the ExitJSFrame code. | 192 JS_RETURN, // Marks start of the ExitJSFrame code. |
194 COMMENT, | 193 COMMENT, |
195 POSITION, // See comment for kNoPosition above. | 194 POSITION, // See comment for kNoPosition above. |
196 STATEMENT_POSITION, // See comment for kNoPosition above. | 195 STATEMENT_POSITION, // See comment for kNoPosition above. |
197 DEBUG_BREAK_SLOT, // Additional code inserted for debug break slot. | 196 DEBUG_BREAK_SLOT, // Additional code inserted for debug break slot. |
198 EXTERNAL_REFERENCE, // The address of an external C++ function. | 197 EXTERNAL_REFERENCE, // The address of an external C++ function. |
199 INTERNAL_REFERENCE, // An address inside the same function. | 198 INTERNAL_REFERENCE, // An address inside the same function. |
200 | 199 |
201 // add more as needed | 200 // add more as needed |
202 // Pseudo-types | 201 // Pseudo-types |
203 NUMBER_OF_MODES, // must be no greater than 14 - see RelocInfoWriter | 202 NUMBER_OF_MODES, // must be no greater than 14 - see RelocInfoWriter |
204 NONE, // never recorded | 203 NONE, // never recorded |
205 LAST_CODE_ENUM = CODE_TARGET, | 204 LAST_CODE_ENUM = CODE_TARGET, |
206 LAST_GCED_ENUM = EMBEDDED_OBJECT | 205 LAST_GCED_ENUM = GLOBAL_PROPERTY_CELL |
207 }; | 206 }; |
208 | 207 |
209 | 208 |
210 RelocInfo() {} | 209 RelocInfo() {} |
211 RelocInfo(byte* pc, Mode rmode, intptr_t data) | 210 RelocInfo(byte* pc, Mode rmode, intptr_t data) |
212 : pc_(pc), rmode_(rmode), data_(data) { | 211 : pc_(pc), rmode_(rmode), data_(data) { |
213 } | 212 } |
214 | 213 |
215 static inline bool IsConstructCall(Mode mode) { | 214 static inline bool IsConstructCall(Mode mode) { |
216 return mode == CONSTRUCT_CALL; | 215 return mode == CONSTRUCT_CALL; |
(...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
745 return num_bits_set; | 744 return num_bits_set; |
746 } | 745 } |
747 | 746 |
748 // Computes pow(x, y) with the special cases in the spec for Math.pow. | 747 // Computes pow(x, y) with the special cases in the spec for Math.pow. |
749 double power_double_int(double x, int y); | 748 double power_double_int(double x, int y); |
750 double power_double_double(double x, double y); | 749 double power_double_double(double x, double y); |
751 | 750 |
752 } } // namespace v8::internal | 751 } } // namespace v8::internal |
753 | 752 |
754 #endif // V8_ASSEMBLER_H_ | 753 #endif // V8_ASSEMBLER_H_ |
OLD | NEW |