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