| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 // CodeForSourcePosition | 73 // CodeForSourcePosition |
| 74 | 74 |
| 75 | 75 |
| 76 // Mode to overwrite BinaryExpression values. | 76 // Mode to overwrite BinaryExpression values. |
| 77 enum OverwriteMode { NO_OVERWRITE, OVERWRITE_LEFT, OVERWRITE_RIGHT }; | 77 enum OverwriteMode { NO_OVERWRITE, OVERWRITE_LEFT, OVERWRITE_RIGHT }; |
| 78 enum UnaryOverwriteMode { UNARY_OVERWRITE, UNARY_NO_OVERWRITE }; | 78 enum UnaryOverwriteMode { UNARY_OVERWRITE, UNARY_NO_OVERWRITE }; |
| 79 | 79 |
| 80 // Types of uncatchable exceptions. | 80 // Types of uncatchable exceptions. |
| 81 enum UncatchableExceptionType { OUT_OF_MEMORY, TERMINATION }; | 81 enum UncatchableExceptionType { OUT_OF_MEMORY, TERMINATION }; |
| 82 | 82 |
| 83 | |
| 84 #if V8_TARGET_ARCH_IA32 | |
| 85 #include "ia32/codegen-ia32.h" | |
| 86 #elif V8_TARGET_ARCH_X64 | |
| 87 #include "x64/codegen-x64.h" | |
| 88 #elif V8_TARGET_ARCH_ARM | |
| 89 #include "arm/codegen-arm.h" | |
| 90 #elif V8_TARGET_ARCH_MIPS | |
| 91 #include "mips/codegen-mips.h" | |
| 92 #else | |
| 93 #error Unsupported target architecture. | |
| 94 #endif | |
| 95 | |
| 96 #include "register-allocator.h" | |
| 97 | |
| 98 namespace v8 { | |
| 99 namespace internal { | |
| 100 | |
| 101 | |
| 102 #define INLINE_RUNTIME_FUNCTION_LIST(F) \ | 83 #define INLINE_RUNTIME_FUNCTION_LIST(F) \ |
| 103 F(IsSmi, 1, 1) \ | 84 F(IsSmi, 1, 1) \ |
| 104 F(IsNonNegativeSmi, 1, 1) \ | 85 F(IsNonNegativeSmi, 1, 1) \ |
| 105 F(IsArray, 1, 1) \ | 86 F(IsArray, 1, 1) \ |
| 106 F(IsRegExp, 1, 1) \ | 87 F(IsRegExp, 1, 1) \ |
| 107 F(CallFunction, -1 /* receiver + n args + function */, 1) \ | 88 F(CallFunction, -1 /* receiver + n args + function */, 1) \ |
| 108 F(IsConstructCall, 0, 1) \ | 89 F(IsConstructCall, 0, 1) \ |
| 109 F(ArgumentsLength, 0, 1) \ | 90 F(ArgumentsLength, 0, 1) \ |
| 110 F(Arguments, 1, 1) \ | 91 F(Arguments, 1, 1) \ |
| 111 F(ClassOf, 1, 1) \ | 92 F(ClassOf, 1, 1) \ |
| (...skipping 13 matching lines...) Expand all Loading... |
| 125 F(SubString, 3, 1) \ | 106 F(SubString, 3, 1) \ |
| 126 F(StringCompare, 2, 1) \ | 107 F(StringCompare, 2, 1) \ |
| 127 F(RegExpExec, 4, 1) \ | 108 F(RegExpExec, 4, 1) \ |
| 128 F(RegExpConstructResult, 3, 1) \ | 109 F(RegExpConstructResult, 3, 1) \ |
| 129 F(GetFromCache, 2, 1) \ | 110 F(GetFromCache, 2, 1) \ |
| 130 F(NumberToString, 1, 1) \ | 111 F(NumberToString, 1, 1) \ |
| 131 F(SwapElements, 3, 1) \ | 112 F(SwapElements, 3, 1) \ |
| 132 F(MathPow, 2, 1) \ | 113 F(MathPow, 2, 1) \ |
| 133 F(MathSin, 1, 1) \ | 114 F(MathSin, 1, 1) \ |
| 134 F(MathCos, 1, 1) \ | 115 F(MathCos, 1, 1) \ |
| 135 F(MathSqrt, 1, 1) | 116 F(MathSqrt, 1, 1) \ |
| 117 F(IsRegExpEquivalent, 2, 1) |
| 136 | 118 |
| 137 | 119 |
| 120 #if V8_TARGET_ARCH_IA32 |
| 121 #include "ia32/codegen-ia32.h" |
| 122 #elif V8_TARGET_ARCH_X64 |
| 123 #include "x64/codegen-x64.h" |
| 124 #elif V8_TARGET_ARCH_ARM |
| 125 #include "arm/codegen-arm.h" |
| 126 #elif V8_TARGET_ARCH_MIPS |
| 127 #include "mips/codegen-mips.h" |
| 128 #else |
| 129 #error Unsupported target architecture. |
| 130 #endif |
| 131 |
| 132 #include "register-allocator.h" |
| 133 |
| 134 namespace v8 { |
| 135 namespace internal { |
| 136 |
| 138 // Support for "structured" code comments. | 137 // Support for "structured" code comments. |
| 139 #ifdef DEBUG | 138 #ifdef DEBUG |
| 140 | 139 |
| 141 class Comment BASE_EMBEDDED { | 140 class Comment BASE_EMBEDDED { |
| 142 public: | 141 public: |
| 143 Comment(MacroAssembler* masm, const char* msg); | 142 Comment(MacroAssembler* masm, const char* msg); |
| 144 ~Comment(); | 143 ~Comment(); |
| 145 | 144 |
| 146 private: | 145 private: |
| 147 MacroAssembler* masm_; | 146 MacroAssembler* masm_; |
| (...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 888 StringCharFromCodeGenerator char_from_code_generator_; | 887 StringCharFromCodeGenerator char_from_code_generator_; |
| 889 | 888 |
| 890 DISALLOW_COPY_AND_ASSIGN(StringCharAtGenerator); | 889 DISALLOW_COPY_AND_ASSIGN(StringCharAtGenerator); |
| 891 }; | 890 }; |
| 892 | 891 |
| 893 | 892 |
| 894 } // namespace internal | 893 } // namespace internal |
| 895 } // namespace v8 | 894 } // namespace v8 |
| 896 | 895 |
| 897 #endif // V8_CODEGEN_H_ | 896 #endif // V8_CODEGEN_H_ |
| OLD | NEW |