comparison jvmci/jdk.vm.ci.aarch64/src/jdk/vm/ci/aarch64/AArch64.java @ 22785:7d014b014ce7

[AArch64]: We need zr and sp as separate registers.
author twisti
date Fri, 22 Jan 2016 12:48:29 -1000
parents 577a4a8caa72
children 4b58c92e939b
comparison
equal deleted inserted replaced
22784:0ab4d816a7f0 22785:7d014b014ce7
68 public static final Register r26 = new Register(26, 26, "r26", CPU); 68 public static final Register r26 = new Register(26, 26, "r26", CPU);
69 public static final Register r27 = new Register(27, 27, "r27", CPU); 69 public static final Register r27 = new Register(27, 27, "r27", CPU);
70 public static final Register r28 = new Register(28, 28, "r28", CPU); 70 public static final Register r28 = new Register(28, 28, "r28", CPU);
71 public static final Register r29 = new Register(29, 29, "r29", CPU); 71 public static final Register r29 = new Register(29, 29, "r29", CPU);
72 public static final Register r30 = new Register(30, 30, "r30", CPU); 72 public static final Register r30 = new Register(30, 30, "r30", CPU);
73
74 /*
75 * r31 is not a general purpose register, but represents either the stackpointer or the
76 * zero/discard register depending on the instruction. So we represent those two uses as two
77 * different registers. The register numbers are kept in sync with register_aarch64.hpp and have
78 * to be sequential, hence we also need a general r31 register here, which is never used.
79 */
73 public static final Register r31 = new Register(31, 31, "r31", CPU); 80 public static final Register r31 = new Register(31, 31, "r31", CPU);
81 public static final Register zr = new Register(32, 31, "zr", CPU);
82 public static final Register sp = new Register(33, 31, "sp", CPU);
74 83
75 public static final Register lr = r30; 84 public static final Register lr = r30;
76 public static final Register zr = r31;
77 public static final Register sp = r31;
78 85
79 // @formatter:off 86 // @formatter:off
80 public static final Register[] cpuRegisters = { 87 public static final Register[] cpuRegisters = {
81 r0, r1, r2, r3, r4, r5, r6, r7, 88 r0, r1, r2, r3, r4, r5, r6, r7,
82 r8, r9, r10, r11, r12, r13, r14, r15, 89 r8, r9, r10, r11, r12, r13, r14, r15,
83 r16, r17, r18, r19, r20, r21, r22, r23, 90 r16, r17, r18, r19, r20, r21, r22, r23,
84 r24, r25, r26, r27, r28, r29, r30, r31 91 r24, r25, r26, r27, r28, r29, r30, r31,
92 zr, sp
85 }; 93 };
86 // @formatter:on 94 // @formatter:on
87 95
88 public static final RegisterCategory SIMD = new RegisterCategory("SIMD"); 96 public static final RegisterCategory SIMD = new RegisterCategory("SIMD");
89 97
90 // Simd registers 98 // Simd registers
91 public static final Register v0 = new Register(32, 0, "v0", SIMD); 99 public static final Register v0 = new Register(34, 0, "v0", SIMD);
92 public static final Register v1 = new Register(33, 1, "v1", SIMD); 100 public static final Register v1 = new Register(35, 1, "v1", SIMD);
93 public static final Register v2 = new Register(34, 2, "v2", SIMD); 101 public static final Register v2 = new Register(36, 2, "v2", SIMD);
94 public static final Register v3 = new Register(35, 3, "v3", SIMD); 102 public static final Register v3 = new Register(37, 3, "v3", SIMD);
95 public static final Register v4 = new Register(36, 4, "v4", SIMD); 103 public static final Register v4 = new Register(38, 4, "v4", SIMD);
96 public static final Register v5 = new Register(37, 5, "v5", SIMD); 104 public static final Register v5 = new Register(39, 5, "v5", SIMD);
97 public static final Register v6 = new Register(38, 6, "v6", SIMD); 105 public static final Register v6 = new Register(40, 6, "v6", SIMD);
98 public static final Register v7 = new Register(39, 7, "v7", SIMD); 106 public static final Register v7 = new Register(41, 7, "v7", SIMD);
99 public static final Register v8 = new Register(40, 8, "v8", SIMD); 107 public static final Register v8 = new Register(42, 8, "v8", SIMD);
100 public static final Register v9 = new Register(41, 9, "v9", SIMD); 108 public static final Register v9 = new Register(43, 9, "v9", SIMD);
101 public static final Register v10 = new Register(42, 10, "v10", SIMD); 109 public static final Register v10 = new Register(44, 10, "v10", SIMD);
102 public static final Register v11 = new Register(43, 11, "v11", SIMD); 110 public static final Register v11 = new Register(45, 11, "v11", SIMD);
103 public static final Register v12 = new Register(44, 12, "v12", SIMD); 111 public static final Register v12 = new Register(46, 12, "v12", SIMD);
104 public static final Register v13 = new Register(45, 13, "v13", SIMD); 112 public static final Register v13 = new Register(47, 13, "v13", SIMD);
105 public static final Register v14 = new Register(46, 14, "v14", SIMD); 113 public static final Register v14 = new Register(48, 14, "v14", SIMD);
106 public static final Register v15 = new Register(47, 15, "v15", SIMD); 114 public static final Register v15 = new Register(49, 15, "v15", SIMD);
107 public static final Register v16 = new Register(48, 16, "v16", SIMD); 115 public static final Register v16 = new Register(50, 16, "v16", SIMD);
108 public static final Register v17 = new Register(49, 17, "v17", SIMD); 116 public static final Register v17 = new Register(51, 17, "v17", SIMD);
109 public static final Register v18 = new Register(50, 18, "v18", SIMD); 117 public static final Register v18 = new Register(52, 18, "v18", SIMD);
110 public static final Register v19 = new Register(51, 19, "v19", SIMD); 118 public static final Register v19 = new Register(53, 19, "v19", SIMD);
111 public static final Register v20 = new Register(52, 20, "v20", SIMD); 119 public static final Register v20 = new Register(54, 20, "v20", SIMD);
112 public static final Register v21 = new Register(53, 21, "v21", SIMD); 120 public static final Register v21 = new Register(55, 21, "v21", SIMD);
113 public static final Register v22 = new Register(54, 22, "v22", SIMD); 121 public static final Register v22 = new Register(56, 22, "v22", SIMD);
114 public static final Register v23 = new Register(55, 23, "v23", SIMD); 122 public static final Register v23 = new Register(57, 23, "v23", SIMD);
115 public static final Register v24 = new Register(56, 24, "v24", SIMD); 123 public static final Register v24 = new Register(58, 24, "v24", SIMD);
116 public static final Register v25 = new Register(57, 25, "v25", SIMD); 124 public static final Register v25 = new Register(59, 25, "v25", SIMD);
117 public static final Register v26 = new Register(58, 26, "v26", SIMD); 125 public static final Register v26 = new Register(60, 26, "v26", SIMD);
118 public static final Register v27 = new Register(59, 27, "v27", SIMD); 126 public static final Register v27 = new Register(61, 27, "v27", SIMD);
119 public static final Register v28 = new Register(60, 28, "v28", SIMD); 127 public static final Register v28 = new Register(62, 28, "v28", SIMD);
120 public static final Register v29 = new Register(61, 29, "v29", SIMD); 128 public static final Register v29 = new Register(63, 29, "v29", SIMD);
121 public static final Register v30 = new Register(62, 30, "v30", SIMD); 129 public static final Register v30 = new Register(64, 30, "v30", SIMD);
122 public static final Register v31 = new Register(63, 31, "v31", SIMD); 130 public static final Register v31 = new Register(65, 31, "v31", SIMD);
123 131
124 // @formatter:off 132 // @formatter:off
125 public static final Register[] simdRegisters = { 133 public static final Register[] simdRegisters = {
126 v0, v1, v2, v3, v4, v5, v6, v7, 134 v0, v1, v2, v3, v4, v5, v6, v7,
127 v8, v9, v10, v11, v12, v13, v14, v15, 135 v8, v9, v10, v11, v12, v13, v14, v15,
134 public static final Register[] allRegisters = { 142 public static final Register[] allRegisters = {
135 r0, r1, r2, r3, r4, r5, r6, r7, 143 r0, r1, r2, r3, r4, r5, r6, r7,
136 r8, r9, r10, r11, r12, r13, r14, r15, 144 r8, r9, r10, r11, r12, r13, r14, r15,
137 r16, r17, r18, r19, r20, r21, r22, r23, 145 r16, r17, r18, r19, r20, r21, r22, r23,
138 r24, r25, r26, r27, r28, r29, r30, r31, 146 r24, r25, r26, r27, r28, r29, r30, r31,
147 zr, sp,
139 148
140 v0, v1, v2, v3, v4, v5, v6, v7, 149 v0, v1, v2, v3, v4, v5, v6, v7,
141 v8, v9, v10, v11, v12, v13, v14, v15, 150 v8, v9, v10, v11, v12, v13, v14, v15,
142 v16, v17, v18, v19, v20, v21, v22, v23, 151 v16, v17, v18, v19, v20, v21, v22, v23,
143 v24, v25, v26, v27, v28, v29, v30, v31 152 v24, v25, v26, v27, v28, v29, v30, v31