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 11 namespace v8 { 12 namespace internal { 13 14 class 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 31 class 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