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