src/cpu/x86/vm/register_definitions_x86.cpp

Wed, 15 Apr 2020 11:49:55 +0800

author
aoqi
date
Wed, 15 Apr 2020 11:49:55 +0800
changeset 9852
70aa912cebe5
parent 6876
710a3c8b516e
permissions
-rw-r--r--

Merge

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

mercurial