blob: 880825a1be0e4fc21df3117064cedf3964754c98 [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 Murdoch4a90d5f2016-03-22 12:00:34 +00008#include "src/ast/ast.h"
Ben Murdochb8a8cc12014-11-26 15:28:44 +00009#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
Ben Murdoch3ef787d2012-04-12 10:51:47 +010015class StringCharLoadGenerator : public AllStatic {
16 public:
17 // Generates the code for handling different string types and loading the
18 // indexed character into |result|. We expect |index| as untagged input and
19 // |result| as untagged output.
20 static void Generate(MacroAssembler* masm,
21 Register string,
22 Register index,
23 Register result,
24 Label* call_runtime);
25
26 private:
27 DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
28};
29
Ben Murdochb8a8cc12014-11-26 15:28:44 +000030
31class MathExpGenerator : public AllStatic {
32 public:
33 // Register input isn't modified. All other registers are clobbered.
34 static void EmitMathExp(MacroAssembler* masm,
35 DwVfpRegister input,
36 DwVfpRegister result,
37 DwVfpRegister double_scratch1,
38 DwVfpRegister double_scratch2,
39 Register temp1,
40 Register temp2,
41 Register temp3);
42
43 private:
44 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
45};
46
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000047} // namespace internal
48} // namespace v8
Steve Blocka7e24c12009-10-30 11:49:00 +000049
50#endif // V8_ARM_CODEGEN_ARM_H_