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/ast.h" 11 #include "src/macro-assembler.h" 12 13 namespace v8 { 14 namespace internal { 15 16 17 class StringCharLoadGenerator : public AllStatic { 18 public: 19 // Generates the code for handling different string types and loading the 20 // indexed character into |result|. We expect |index| as untagged input and 21 // |result| as untagged output. 22 static void Generate(MacroAssembler* masm, 23 Register string, 24 Register index, 25 Register result, 26 Label* call_runtime); 27 28 private: 29 DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator); 30 }; 31 32 33 class MathExpGenerator : public AllStatic { 34 public: 35 // Register input isn't modified. All other registers are clobbered. 36 static void EmitMathExp(MacroAssembler* masm, 37 DoubleRegister input, 38 DoubleRegister result, 39 DoubleRegister double_scratch1, 40 DoubleRegister double_scratch2, 41 Register temp1, 42 Register temp2, 43 Register temp3); 44 45 private: 46 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator); 47 }; 48 49 } // namespace internal 50 } // namespace v8 51 52 #endif // V8_MIPS_CODEGEN_MIPS_H_ 53