1 // Copyright 2011 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 6 #ifndef V8_MIPS_CODEGEN_MIPS_H_ 7 #define V8_MIPS_CODEGEN_MIPS_H_ 8 9 10 #include "src/ast.h" 11 #include "src/macro-assembler.h" 12 13 namespace v8 { 14 namespace internal { 15 16 17 enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF }; 18 19 20 class StringCharLoadGenerator : public AllStatic { 21 public: 22 // Generates the code for handling different string types and loading the 23 // indexed character into |result|. We expect |index| as untagged input and 24 // |result| as untagged output. 25 static void Generate(MacroAssembler* masm, 26 Register string, 27 Register index, 28 Register result, 29 Label* call_runtime); 30 31 private: 32 DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator); 33 }; 34 35 36 class MathExpGenerator : public AllStatic { 37 public: 38 // Register input isn't modified. All other registers are clobbered. 39 static void EmitMathExp(MacroAssembler* masm, 40 DoubleRegister input, 41 DoubleRegister result, 42 DoubleRegister double_scratch1, 43 DoubleRegister double_scratch2, 44 Register temp1, 45 Register temp2, 46 Register temp3); 47 48 private: 49 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator); 50 }; 51 52 } } // namespace v8::internal 53 54 #endif // V8_MIPS_CODEGEN_MIPS_H_ 55