Mercurial > hg > graal-jvmci-8
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 |