blob: c3cd9b39a0e52a6a30fa5194c0d279728d395238 [file] [log] [blame]
Emily Bernierd0a1eb72015-03-24 16:35:39 -04001// Copyright 2014 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_PPC_CODEGEN_PPC_H_
6#define V8_PPC_CODEGEN_PPC_H_
7
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00008#include "src/ast/ast.h"
Emily Bernierd0a1eb72015-03-24 16:35:39 -04009#include "src/macro-assembler.h"
10
11namespace v8 {
12namespace internal {
13
14
Emily Bernierd0a1eb72015-03-24 16:35:39 -040015class 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, Register string, Register index,
21 Register result, Label* call_runtime);
22
23 private:
24 DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
25};
26
27class MathExpGenerator : public AllStatic {
28 public:
29 // Register input isn't modified. All other registers are clobbered.
30 static void EmitMathExp(MacroAssembler* masm, DoubleRegister input,
31 DoubleRegister result, DoubleRegister double_scratch1,
32 DoubleRegister double_scratch2, Register temp1,
33 Register temp2, Register temp3);
34
35 private:
36 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
37};
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000038} // namespace internal
39} // namespace v8
Emily Bernierd0a1eb72015-03-24 16:35:39 -040040
41#endif // V8_PPC_CODEGEN_PPC_H_