blob: 2f01c510de7fee304e17da5078cd5d353659e172 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// Copyright 2013 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#ifndef V8_ARM64_CODEGEN_ARM64_H_
6#define V8_ARM64_CODEGEN_ARM64_H_
7
8#include "src/ast.h"
9#include "src/macro-assembler.h"
10
11namespace v8 {
12namespace internal {
13
14class StringCharLoadGenerator : public AllStatic {
15 public:
16 // Generates the code for handling different string types and loading the
17 // indexed character into |result|. We expect |index| as untagged input and
18 // |result| as untagged output. Register index is asserted to be a 32-bit W
19 // register.
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
30
31class MathExpGenerator : public AllStatic {
32 public:
33 static void EmitMathExp(MacroAssembler* masm,
34 DoubleRegister input,
35 DoubleRegister result,
36 DoubleRegister double_scratch1,
37 DoubleRegister double_scratch2,
38 Register temp1,
39 Register temp2,
40 Register temp3);
41
42 private:
43 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
44};
45
46} } // namespace v8::internal
47
48#endif // V8_ARM64_CODEGEN_ARM64_H_