register_definitions_x86.cpp revision 1879:f95d63e2154a
1/*
2 * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25#include "precompiled.hpp"
26#include "asm/assembler.hpp"
27#include "asm/register.hpp"
28#include "register_x86.hpp"
29#ifdef TARGET_ARCH_MODEL_x86_32
30# include "interp_masm_x86_32.hpp"
31#endif
32#ifdef TARGET_ARCH_MODEL_x86_64
33# include "interp_masm_x86_64.hpp"
34#endif
35
36REGISTER_DEFINITION(Register, noreg);
37REGISTER_DEFINITION(Register, rax);
38REGISTER_DEFINITION(Register, rcx);
39REGISTER_DEFINITION(Register, rdx);
40REGISTER_DEFINITION(Register, rbx);
41REGISTER_DEFINITION(Register, rsp);
42REGISTER_DEFINITION(Register, rbp);
43REGISTER_DEFINITION(Register, rsi);
44REGISTER_DEFINITION(Register, rdi);
45#ifdef AMD64
46REGISTER_DEFINITION(Register, r8);
47REGISTER_DEFINITION(Register, r9);
48REGISTER_DEFINITION(Register, r10);
49REGISTER_DEFINITION(Register, r11);
50REGISTER_DEFINITION(Register, r12);
51REGISTER_DEFINITION(Register, r13);
52REGISTER_DEFINITION(Register, r14);
53REGISTER_DEFINITION(Register, r15);
54#endif // AMD64
55
56REGISTER_DEFINITION(XMMRegister, xmm0 );
57REGISTER_DEFINITION(XMMRegister, xmm1 );
58REGISTER_DEFINITION(XMMRegister, xmm2 );
59REGISTER_DEFINITION(XMMRegister, xmm3 );
60REGISTER_DEFINITION(XMMRegister, xmm4 );
61REGISTER_DEFINITION(XMMRegister, xmm5 );
62REGISTER_DEFINITION(XMMRegister, xmm6 );
63REGISTER_DEFINITION(XMMRegister, xmm7 );
64#ifdef AMD64
65REGISTER_DEFINITION(XMMRegister, xmm8);
66REGISTER_DEFINITION(XMMRegister, xmm9);
67REGISTER_DEFINITION(XMMRegister, xmm10);
68REGISTER_DEFINITION(XMMRegister, xmm11);
69REGISTER_DEFINITION(XMMRegister, xmm12);
70REGISTER_DEFINITION(XMMRegister, xmm13);
71REGISTER_DEFINITION(XMMRegister, xmm14);
72REGISTER_DEFINITION(XMMRegister, xmm15);
73
74REGISTER_DEFINITION(Register, c_rarg0);
75REGISTER_DEFINITION(Register, c_rarg1);
76REGISTER_DEFINITION(Register, c_rarg2);
77REGISTER_DEFINITION(Register, c_rarg3);
78
79REGISTER_DEFINITION(XMMRegister, c_farg0);
80REGISTER_DEFINITION(XMMRegister, c_farg1);
81REGISTER_DEFINITION(XMMRegister, c_farg2);
82REGISTER_DEFINITION(XMMRegister, c_farg3);
83
84// Non windows OS's have a few more argument registers
85#ifndef _WIN64
86REGISTER_DEFINITION(Register, c_rarg4);
87REGISTER_DEFINITION(Register, c_rarg5);
88
89REGISTER_DEFINITION(XMMRegister, c_farg4);
90REGISTER_DEFINITION(XMMRegister, c_farg5);
91REGISTER_DEFINITION(XMMRegister, c_farg6);
92REGISTER_DEFINITION(XMMRegister, c_farg7);
93#endif /* _WIN64 */
94
95REGISTER_DEFINITION(Register, j_rarg0);
96REGISTER_DEFINITION(Register, j_rarg1);
97REGISTER_DEFINITION(Register, j_rarg2);
98REGISTER_DEFINITION(Register, j_rarg3);
99REGISTER_DEFINITION(Register, j_rarg4);
100REGISTER_DEFINITION(Register, j_rarg5);
101
102REGISTER_DEFINITION(XMMRegister, j_farg0);
103REGISTER_DEFINITION(XMMRegister, j_farg1);
104REGISTER_DEFINITION(XMMRegister, j_farg2);
105REGISTER_DEFINITION(XMMRegister, j_farg3);
106REGISTER_DEFINITION(XMMRegister, j_farg4);
107REGISTER_DEFINITION(XMMRegister, j_farg5);
108REGISTER_DEFINITION(XMMRegister, j_farg6);
109REGISTER_DEFINITION(XMMRegister, j_farg7);
110
111REGISTER_DEFINITION(Register, rscratch1);
112REGISTER_DEFINITION(Register, rscratch2);
113
114REGISTER_DEFINITION(Register, r12_heapbase);
115REGISTER_DEFINITION(Register, r15_thread);
116#endif // AMD64
117
118REGISTER_DEFINITION(MMXRegister, mmx0 );
119REGISTER_DEFINITION(MMXRegister, mmx1 );
120REGISTER_DEFINITION(MMXRegister, mmx2 );
121REGISTER_DEFINITION(MMXRegister, mmx3 );
122REGISTER_DEFINITION(MMXRegister, mmx4 );
123REGISTER_DEFINITION(MMXRegister, mmx5 );
124REGISTER_DEFINITION(MMXRegister, mmx6 );
125REGISTER_DEFINITION(MMXRegister, mmx7 );
126
127// JSR 292
128REGISTER_DEFINITION(Register, rbp_mh_SP_save);
129