Tue, 26 Jul 2016 17:06:17 +0800
Add multiply word to GPR instruction (mul) in MIPS assembler.
1 /*
2 * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
3 * Copyright (c) 2015, 2016, Loongson Technology. All rights reserved.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 *
6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as
8 * published by the Free Software Foundation.
9 *
10 * This code is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 *
24 */
26 #include "precompiled.hpp"
27 #include "asm/assembler.hpp"
28 #include "asm/register.hpp"
29 #include "register_mips.hpp"
30 #ifdef TARGET_ARCH_MODEL_mips_32
31 # include "interp_masm_mips_32.hpp"
32 #endif
33 #ifdef TARGET_ARCH_MODEL_mips_64
34 # include "interp_masm_mips_64.hpp"
35 #endif
38 REGISTER_DEFINITION(Register, noreg);
39 REGISTER_DEFINITION(Register, i0);
40 REGISTER_DEFINITION(Register, i1);
41 REGISTER_DEFINITION(Register, i2);
42 REGISTER_DEFINITION(Register, i3);
43 REGISTER_DEFINITION(Register, i4);
44 REGISTER_DEFINITION(Register, i5);
45 REGISTER_DEFINITION(Register, i6);
46 REGISTER_DEFINITION(Register, i7);
47 REGISTER_DEFINITION(Register, i8);
48 REGISTER_DEFINITION(Register, i9);
49 REGISTER_DEFINITION(Register, i10);
50 REGISTER_DEFINITION(Register, i11);
51 REGISTER_DEFINITION(Register, i12);
52 REGISTER_DEFINITION(Register, i13);
53 REGISTER_DEFINITION(Register, i14);
54 REGISTER_DEFINITION(Register, i15);
55 REGISTER_DEFINITION(Register, i16);
56 REGISTER_DEFINITION(Register, i17);
57 REGISTER_DEFINITION(Register, i18);
58 REGISTER_DEFINITION(Register, i19);
59 REGISTER_DEFINITION(Register, i20);
60 REGISTER_DEFINITION(Register, i21);
61 REGISTER_DEFINITION(Register, i22);
62 REGISTER_DEFINITION(Register, i23);
63 REGISTER_DEFINITION(Register, i24);
64 REGISTER_DEFINITION(Register, i25);
65 REGISTER_DEFINITION(Register, i26);
66 REGISTER_DEFINITION(Register, i27);
67 REGISTER_DEFINITION(Register, i28);
68 REGISTER_DEFINITION(Register, i29);
69 REGISTER_DEFINITION(Register, i30);
70 REGISTER_DEFINITION(Register, i31);
72 REGISTER_DEFINITION(FloatRegister, fnoreg);
73 REGISTER_DEFINITION(FloatRegister, f0);
74 REGISTER_DEFINITION(FloatRegister, f1);
75 REGISTER_DEFINITION(FloatRegister, f2);
76 REGISTER_DEFINITION(FloatRegister, f3);
77 REGISTER_DEFINITION(FloatRegister, f4);
78 REGISTER_DEFINITION(FloatRegister, f5);
79 REGISTER_DEFINITION(FloatRegister, f6);
80 REGISTER_DEFINITION(FloatRegister, f7);
81 REGISTER_DEFINITION(FloatRegister, f8);
82 REGISTER_DEFINITION(FloatRegister, f9);
83 REGISTER_DEFINITION(FloatRegister, f10);
84 REGISTER_DEFINITION(FloatRegister, f11);
85 REGISTER_DEFINITION(FloatRegister, f12);
86 REGISTER_DEFINITION(FloatRegister, f13);
87 REGISTER_DEFINITION(FloatRegister, f14);
88 REGISTER_DEFINITION(FloatRegister, f15);
89 REGISTER_DEFINITION(FloatRegister, f16);
90 REGISTER_DEFINITION(FloatRegister, f17);
91 REGISTER_DEFINITION(FloatRegister, f18);
92 REGISTER_DEFINITION(FloatRegister, f19);
93 REGISTER_DEFINITION(FloatRegister, f20);
94 REGISTER_DEFINITION(FloatRegister, f21);
95 REGISTER_DEFINITION(FloatRegister, f22);
96 REGISTER_DEFINITION(FloatRegister, f23);
97 REGISTER_DEFINITION(FloatRegister, f24);
98 REGISTER_DEFINITION(FloatRegister, f25);
99 REGISTER_DEFINITION(FloatRegister, f26);
100 REGISTER_DEFINITION(FloatRegister, f27);
101 REGISTER_DEFINITION(FloatRegister, f28);
102 REGISTER_DEFINITION(FloatRegister, f29);
103 REGISTER_DEFINITION(FloatRegister, f30);
104 REGISTER_DEFINITION(FloatRegister, f31);