1// 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_ 49