1// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#include "platform/globals.h" // NOLINT
6
7#if defined(TARGET_ARCH_X64)
8
9#include "vm/constants.h" // NOLINT
10
11namespace dart {
12
13const char* cpu_reg_names[kNumberOfCpuRegisters] = {
14 "rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
15 "r8", "r9", "r10", "r11", "r12", "r13", "thr", "pp"};
16
17const char* fpu_reg_names[kNumberOfXmmRegisters] = {
18 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7",
19 "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"};
20
21#if defined(TARGET_OS_WINDOWS)
22const Register CallingConventions::ArgumentRegisters[] = {
23 CallingConventions::kArg1Reg, CallingConventions::kArg2Reg,
24 CallingConventions::kArg3Reg, CallingConventions::kArg4Reg};
25
26const XmmRegister CallingConventions::FpuArgumentRegisters[] = {
27 XmmRegister::XMM0, XmmRegister::XMM1, XmmRegister::XMM2, XmmRegister::XMM3};
28#else
29const Register CallingConventions::ArgumentRegisters[] = {
30 CallingConventions::kArg1Reg, CallingConventions::kArg2Reg,
31 CallingConventions::kArg3Reg, CallingConventions::kArg4Reg,
32 CallingConventions::kArg5Reg, CallingConventions::kArg6Reg};
33
34const XmmRegister CallingConventions::FpuArgumentRegisters[] = {
35 XmmRegister::XMM0, XmmRegister::XMM1, XmmRegister::XMM2, XmmRegister::XMM3,
36 XmmRegister::XMM4, XmmRegister::XMM5, XmmRegister::XMM6, XmmRegister::XMM7};
37#endif
38
39} // namespace dart
40
41#endif // defined(TARGET_ARCH_X64)
42