blob: 4c7c7688fd7ec90152eb3590373eb7ff7f0f5aa4 [file] [log] [blame]
Ben Murdoch8b112d22011-06-08 16:22:53 +01001// Copyright 2011 the V8 project authors. All rights reserved.
Ben Murdochb8a8cc12014-11-26 15:28:44 +00002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
Steve Blocka7e24c12009-10-30 11:49:00 +00004
5#ifndef V8_ARM_CODEGEN_ARM_H_
6#define V8_ARM_CODEGEN_ARM_H_
7
Ben Murdochb8a8cc12014-11-26 15:28:44 +00008#include "src/ast.h"
9#include "src/macro-assembler.h"
Steve Block6ded16b2010-05-10 14:33:55 +010010
Steve Blocka7e24c12009-10-30 11:49:00 +000011namespace v8 {
12namespace internal {
13
Steve Blocka7e24c12009-10-30 11:49:00 +000014
Steve Blocka7e24c12009-10-30 11:49:00 +000015enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF };
Steve Block6ded16b2010-05-10 14:33:55 +010016
Steve Blocka7e24c12009-10-30 11:49:00 +000017
Ben Murdoch3ef787d2012-04-12 10:51:47 +010018class StringCharLoadGenerator : public AllStatic {
19 public:
20 // Generates the code for handling different string types and loading the
21 // indexed character into |result|. We expect |index| as untagged input and
22 // |result| as untagged output.
23 static void Generate(MacroAssembler* masm,
24 Register string,
25 Register index,
26 Register result,
27 Label* call_runtime);
28
29 private:
30 DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
31};
32
Ben Murdochb8a8cc12014-11-26 15:28:44 +000033
34class MathExpGenerator : public AllStatic {
35 public:
36 // Register input isn't modified. All other registers are clobbered.
37 static void EmitMathExp(MacroAssembler* masm,
38 DwVfpRegister input,
39 DwVfpRegister result,
40 DwVfpRegister double_scratch1,
41 DwVfpRegister double_scratch2,
42 Register temp1,
43 Register temp2,
44 Register temp3);
45
46 private:
47 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
48};
49
Steve Blocka7e24c12009-10-30 11:49:00 +000050} } // namespace v8::internal
51
52#endif // V8_ARM_CODEGEN_ARM_H_