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 4193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4204 LAST_CODE_KIND = TO_BOOLEAN_IC, | 4204 LAST_CODE_KIND = TO_BOOLEAN_IC, |
4205 REGEXP = BUILTIN, | 4205 REGEXP = BUILTIN, |
4206 FIRST_IC_KIND = LOAD_IC, | 4206 FIRST_IC_KIND = LOAD_IC, |
4207 LAST_IC_KIND = TO_BOOLEAN_IC | 4207 LAST_IC_KIND = TO_BOOLEAN_IC |
4208 }; | 4208 }; |
4209 | 4209 |
4210 // No more than 16 kinds. The value is currently encoded in four bits in | 4210 // No more than 16 kinds. The value is currently encoded in four bits in |
4211 // Flags. | 4211 // Flags. |
4212 STATIC_ASSERT(LAST_CODE_KIND < 16); | 4212 STATIC_ASSERT(LAST_CODE_KIND < 16); |
4213 | 4213 |
| 4214 static const char* Kind2String(Kind kind); |
| 4215 |
4214 // Types of stubs. | 4216 // Types of stubs. |
4215 enum StubType { | 4217 enum StubType { |
4216 NORMAL, | 4218 NORMAL, |
4217 FIELD, | 4219 FIELD, |
4218 CONSTANT_FUNCTION, | 4220 CONSTANT_FUNCTION, |
4219 CALLBACKS, | 4221 CALLBACKS, |
4220 INTERCEPTOR, | 4222 INTERCEPTOR, |
4221 MAP_TRANSITION, | 4223 MAP_TRANSITION, |
4222 NONEXISTENT | 4224 NONEXISTENT |
4223 }; | 4225 }; |
4224 | 4226 |
4225 enum { | 4227 enum { |
4226 NUMBER_OF_KINDS = LAST_IC_KIND + 1 | 4228 NUMBER_OF_KINDS = LAST_IC_KIND + 1 |
4227 }; | 4229 }; |
4228 | 4230 |
4229 typedef int ExtraICState; | 4231 typedef int ExtraICState; |
4230 | 4232 |
4231 static const ExtraICState kNoExtraICState = 0; | 4233 static const ExtraICState kNoExtraICState = 0; |
4232 | 4234 |
4233 #ifdef ENABLE_DISASSEMBLER | 4235 #ifdef ENABLE_DISASSEMBLER |
4234 // Printing | 4236 // Printing |
4235 static const char* Kind2String(Kind kind); | |
4236 static const char* ICState2String(InlineCacheState state); | 4237 static const char* ICState2String(InlineCacheState state); |
4237 static const char* StubType2String(StubType type); | 4238 static const char* StubType2String(StubType type); |
4238 static void PrintExtraICState(FILE* out, Kind kind, ExtraICState extra); | 4239 static void PrintExtraICState(FILE* out, Kind kind, ExtraICState extra); |
4239 inline void Disassemble(const char* name) { | 4240 inline void Disassemble(const char* name) { |
4240 Disassemble(name, stdout); | 4241 Disassemble(name, stdout); |
4241 } | 4242 } |
4242 void Disassemble(const char* name, FILE* out); | 4243 void Disassemble(const char* name, FILE* out); |
4243 #endif // ENABLE_DISASSEMBLER | 4244 #endif // ENABLE_DISASSEMBLER |
4244 | 4245 |
4245 // [instruction_size]: Size of the native instructions | 4246 // [instruction_size]: Size of the native instructions |
(...skipping 4640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8886 } else { | 8887 } else { |
8887 value &= ~(1 << bit_position); | 8888 value &= ~(1 << bit_position); |
8888 } | 8889 } |
8889 return value; | 8890 return value; |
8890 } | 8891 } |
8891 }; | 8892 }; |
8892 | 8893 |
8893 } } // namespace v8::internal | 8894 } } // namespace v8::internal |
8894 | 8895 |
8895 #endif // V8_OBJECTS_H_ | 8896 #endif // V8_OBJECTS_H_ |
OLD | NEW |