Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(478)

Side by Side Diff: src/s390/constants-s390.cc

Issue 1893713002: S390: Optimize decoding opcode format by using format table (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add comment to table Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/s390/constants-s390.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #if V8_TARGET_ARCH_S390 5 #if V8_TARGET_ARCH_S390
6 6
7 #include "src/s390/constants-s390.h" 7 #include "src/s390/constants-s390.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
11 11
12 Instruction::OpcodeFormatType Instruction::OpcodeFormatTable[] = {
13 // Based on Figure B-3 in z/Architecture Principles of
14 // Operation.
15 TWO_BYTE_OPCODE, // 0x00
16 TWO_BYTE_OPCODE, // 0x01
17 TWO_BYTE_DISJOINT_OPCODE, // 0x02
18 TWO_BYTE_DISJOINT_OPCODE, // 0x03
19 ONE_BYTE_OPCODE, // 0x04
20 ONE_BYTE_OPCODE, // 0x05
21 ONE_BYTE_OPCODE, // 0x06
22 ONE_BYTE_OPCODE, // 0x07
23 ONE_BYTE_OPCODE, // 0x08
24 ONE_BYTE_OPCODE, // 0x09
25 ONE_BYTE_OPCODE, // 0x0a
26 ONE_BYTE_OPCODE, // 0x0b
27 ONE_BYTE_OPCODE, // 0x0c
28 ONE_BYTE_OPCODE, // 0x0d
29 ONE_BYTE_OPCODE, // 0x0e
30 ONE_BYTE_OPCODE, // 0x0f
31 ONE_BYTE_OPCODE, // 0x10
32 ONE_BYTE_OPCODE, // 0x11
33 ONE_BYTE_OPCODE, // 0x12
34 ONE_BYTE_OPCODE, // 0x13
35 ONE_BYTE_OPCODE, // 0x14
36 ONE_BYTE_OPCODE, // 0x15
37 ONE_BYTE_OPCODE, // 0x16
38 ONE_BYTE_OPCODE, // 0x17
39 ONE_BYTE_OPCODE, // 0x18
40 ONE_BYTE_OPCODE, // 0x19
41 ONE_BYTE_OPCODE, // 0x1a
42 ONE_BYTE_OPCODE, // 0x1b
43 ONE_BYTE_OPCODE, // 0x1c
44 ONE_BYTE_OPCODE, // 0x1d
45 ONE_BYTE_OPCODE, // 0x1e
46 ONE_BYTE_OPCODE, // 0x1f
47 ONE_BYTE_OPCODE, // 0x20
48 ONE_BYTE_OPCODE, // 0x21
49 ONE_BYTE_OPCODE, // 0x22
50 ONE_BYTE_OPCODE, // 0x23
51 ONE_BYTE_OPCODE, // 0x24
52 ONE_BYTE_OPCODE, // 0x25
53 ONE_BYTE_OPCODE, // 0x26
54 ONE_BYTE_OPCODE, // 0x27
55 ONE_BYTE_OPCODE, // 0x28
56 ONE_BYTE_OPCODE, // 0x29
57 ONE_BYTE_OPCODE, // 0x2a
58 ONE_BYTE_OPCODE, // 0x2b
59 ONE_BYTE_OPCODE, // 0x2c
60 ONE_BYTE_OPCODE, // 0x2d
61 ONE_BYTE_OPCODE, // 0x2e
62 ONE_BYTE_OPCODE, // 0x2f
63 ONE_BYTE_OPCODE, // 0x30
64 ONE_BYTE_OPCODE, // 0x31
65 ONE_BYTE_OPCODE, // 0x32
66 ONE_BYTE_OPCODE, // 0x33
67 ONE_BYTE_OPCODE, // 0x34
68 ONE_BYTE_OPCODE, // 0x35
69 ONE_BYTE_OPCODE, // 0x36
70 ONE_BYTE_OPCODE, // 0x37
71 ONE_BYTE_OPCODE, // 0x38
72 ONE_BYTE_OPCODE, // 0x39
73 ONE_BYTE_OPCODE, // 0x3a
74 ONE_BYTE_OPCODE, // 0x3b
75 ONE_BYTE_OPCODE, // 0x3c
76 ONE_BYTE_OPCODE, // 0x3d
77 ONE_BYTE_OPCODE, // 0x3e
78 ONE_BYTE_OPCODE, // 0x3f
79 ONE_BYTE_OPCODE, // 0x40
80 ONE_BYTE_OPCODE, // 0x41
81 ONE_BYTE_OPCODE, // 0x42
82 ONE_BYTE_OPCODE, // 0x43
83 ONE_BYTE_OPCODE, // 0x44
84 ONE_BYTE_OPCODE, // 0x45
85 ONE_BYTE_OPCODE, // 0x46
86 ONE_BYTE_OPCODE, // 0x47
87 ONE_BYTE_OPCODE, // 0x48
88 ONE_BYTE_OPCODE, // 0x49
89 ONE_BYTE_OPCODE, // 0x4a
90 ONE_BYTE_OPCODE, // 0x4b
91 ONE_BYTE_OPCODE, // 0x4c
92 ONE_BYTE_OPCODE, // 0x4d
93 ONE_BYTE_OPCODE, // 0x4e
94 ONE_BYTE_OPCODE, // 0x4f
95 ONE_BYTE_OPCODE, // 0x50
96 ONE_BYTE_OPCODE, // 0x51
97 ONE_BYTE_OPCODE, // 0x52
98 ONE_BYTE_OPCODE, // 0x53
99 ONE_BYTE_OPCODE, // 0x54
100 ONE_BYTE_OPCODE, // 0x55
101 ONE_BYTE_OPCODE, // 0x56
102 ONE_BYTE_OPCODE, // 0x57
103 ONE_BYTE_OPCODE, // 0x58
104 ONE_BYTE_OPCODE, // 0x59
105 ONE_BYTE_OPCODE, // 0x5a
106 ONE_BYTE_OPCODE, // 0x5b
107 ONE_BYTE_OPCODE, // 0x5c
108 ONE_BYTE_OPCODE, // 0x5d
109 ONE_BYTE_OPCODE, // 0x5e
110 ONE_BYTE_OPCODE, // 0x5f
111 ONE_BYTE_OPCODE, // 0x60
112 ONE_BYTE_OPCODE, // 0x61
113 ONE_BYTE_OPCODE, // 0x62
114 ONE_BYTE_OPCODE, // 0x63
115 ONE_BYTE_OPCODE, // 0x64
116 ONE_BYTE_OPCODE, // 0x65
117 ONE_BYTE_OPCODE, // 0x66
118 ONE_BYTE_OPCODE, // 0x67
119 ONE_BYTE_OPCODE, // 0x68
120 ONE_BYTE_OPCODE, // 0x69
121 ONE_BYTE_OPCODE, // 0x6a
122 ONE_BYTE_OPCODE, // 0x6b
123 ONE_BYTE_OPCODE, // 0x6c
124 ONE_BYTE_OPCODE, // 0x6d
125 ONE_BYTE_OPCODE, // 0x6e
126 ONE_BYTE_OPCODE, // 0x6f
127 ONE_BYTE_OPCODE, // 0x70
128 ONE_BYTE_OPCODE, // 0x71
129 ONE_BYTE_OPCODE, // 0x72
130 ONE_BYTE_OPCODE, // 0x73
131 ONE_BYTE_OPCODE, // 0x74
132 ONE_BYTE_OPCODE, // 0x75
133 ONE_BYTE_OPCODE, // 0x76
134 ONE_BYTE_OPCODE, // 0x77
135 ONE_BYTE_OPCODE, // 0x78
136 ONE_BYTE_OPCODE, // 0x79
137 ONE_BYTE_OPCODE, // 0x7a
138 ONE_BYTE_OPCODE, // 0x7b
139 ONE_BYTE_OPCODE, // 0x7c
140 ONE_BYTE_OPCODE, // 0x7d
141 ONE_BYTE_OPCODE, // 0x7e
142 ONE_BYTE_OPCODE, // 0x7f
143 ONE_BYTE_OPCODE, // 0x80
144 ONE_BYTE_OPCODE, // 0x81
145 ONE_BYTE_OPCODE, // 0x82
146 ONE_BYTE_OPCODE, // 0x83
147 ONE_BYTE_OPCODE, // 0x84
148 ONE_BYTE_OPCODE, // 0x85
149 ONE_BYTE_OPCODE, // 0x86
150 ONE_BYTE_OPCODE, // 0x87
151 ONE_BYTE_OPCODE, // 0x88
152 ONE_BYTE_OPCODE, // 0x89
153 ONE_BYTE_OPCODE, // 0x8a
154 ONE_BYTE_OPCODE, // 0x8b
155 ONE_BYTE_OPCODE, // 0x8c
156 ONE_BYTE_OPCODE, // 0x8d
157 ONE_BYTE_OPCODE, // 0x8e
158 ONE_BYTE_OPCODE, // 0x8f
159 ONE_BYTE_OPCODE, // 0x90
160 ONE_BYTE_OPCODE, // 0x91
161 ONE_BYTE_OPCODE, // 0x92
162 ONE_BYTE_OPCODE, // 0x93
163 ONE_BYTE_OPCODE, // 0x94
164 ONE_BYTE_OPCODE, // 0x95
165 ONE_BYTE_OPCODE, // 0x96
166 ONE_BYTE_OPCODE, // 0x97
167 ONE_BYTE_OPCODE, // 0x98
168 ONE_BYTE_OPCODE, // 0x99
169 ONE_BYTE_OPCODE, // 0x9a
170 ONE_BYTE_OPCODE, // 0x9b
171 TWO_BYTE_DISJOINT_OPCODE, // 0x9c
172 TWO_BYTE_DISJOINT_OPCODE, // 0x9d
173 TWO_BYTE_DISJOINT_OPCODE, // 0x9e
174 TWO_BYTE_DISJOINT_OPCODE, // 0x9f
175 TWO_BYTE_DISJOINT_OPCODE, // 0xa0
176 TWO_BYTE_DISJOINT_OPCODE, // 0xa1
177 TWO_BYTE_DISJOINT_OPCODE, // 0xa2
178 TWO_BYTE_DISJOINT_OPCODE, // 0xa3
179 TWO_BYTE_DISJOINT_OPCODE, // 0xa4
180 THREE_NIBBLE_OPCODE, // 0xa5
181 TWO_BYTE_DISJOINT_OPCODE, // 0xa6
182 THREE_NIBBLE_OPCODE, // 0xa7
183 ONE_BYTE_OPCODE, // 0xa8
184 ONE_BYTE_OPCODE, // 0xa9
185 ONE_BYTE_OPCODE, // 0xaa
186 ONE_BYTE_OPCODE, // 0xab
187 ONE_BYTE_OPCODE, // 0xac
188 ONE_BYTE_OPCODE, // 0xad
189 ONE_BYTE_OPCODE, // 0xae
190 ONE_BYTE_OPCODE, // 0xaf
191 ONE_BYTE_OPCODE, // 0xb0
192 ONE_BYTE_OPCODE, // 0xb1
193 TWO_BYTE_OPCODE, // 0xb2
194 TWO_BYTE_OPCODE, // 0xb3
195 TWO_BYTE_DISJOINT_OPCODE, // 0xb4
196 TWO_BYTE_DISJOINT_OPCODE, // 0xb5
197 TWO_BYTE_DISJOINT_OPCODE, // 0xb6
198 TWO_BYTE_DISJOINT_OPCODE, // 0xb7
199 TWO_BYTE_DISJOINT_OPCODE, // 0xb8
200 TWO_BYTE_OPCODE, // 0xb9
201 ONE_BYTE_OPCODE, // 0xba
202 ONE_BYTE_OPCODE, // 0xbb
203 ONE_BYTE_OPCODE, // 0xbc
204 ONE_BYTE_OPCODE, // 0xbd
205 ONE_BYTE_OPCODE, // 0xbe
206 ONE_BYTE_OPCODE, // 0xbf
207 THREE_NIBBLE_OPCODE, // 0xc0
208 THREE_NIBBLE_OPCODE, // 0xc1
209 THREE_NIBBLE_OPCODE, // 0xc2
210 THREE_NIBBLE_OPCODE, // 0xc3
211 THREE_NIBBLE_OPCODE, // 0xc4
212 THREE_NIBBLE_OPCODE, // 0xc5
213 THREE_NIBBLE_OPCODE, // 0xc6
214 ONE_BYTE_OPCODE, // 0xc7
215 THREE_NIBBLE_OPCODE, // 0xc8
216 THREE_NIBBLE_OPCODE, // 0xc9
217 THREE_NIBBLE_OPCODE, // 0xca
218 THREE_NIBBLE_OPCODE, // 0xcb
219 THREE_NIBBLE_OPCODE, // 0xcc
220 TWO_BYTE_DISJOINT_OPCODE, // 0xcd
221 TWO_BYTE_DISJOINT_OPCODE, // 0xce
222 TWO_BYTE_DISJOINT_OPCODE, // 0xcf
223 ONE_BYTE_OPCODE, // 0xd0
224 ONE_BYTE_OPCODE, // 0xd1
225 ONE_BYTE_OPCODE, // 0xd2
226 ONE_BYTE_OPCODE, // 0xd3
227 ONE_BYTE_OPCODE, // 0xd4
228 ONE_BYTE_OPCODE, // 0xd5
229 ONE_BYTE_OPCODE, // 0xd6
230 ONE_BYTE_OPCODE, // 0xd7
231 ONE_BYTE_OPCODE, // 0xd8
232 ONE_BYTE_OPCODE, // 0xd9
233 ONE_BYTE_OPCODE, // 0xda
234 ONE_BYTE_OPCODE, // 0xdb
235 ONE_BYTE_OPCODE, // 0xdc
236 ONE_BYTE_OPCODE, // 0xdd
237 ONE_BYTE_OPCODE, // 0xde
238 ONE_BYTE_OPCODE, // 0xdf
239 ONE_BYTE_OPCODE, // 0xe0
240 ONE_BYTE_OPCODE, // 0xe1
241 ONE_BYTE_OPCODE, // 0xe2
242 TWO_BYTE_DISJOINT_OPCODE, // 0xe3
243 TWO_BYTE_DISJOINT_OPCODE, // 0xe4
244 TWO_BYTE_OPCODE, // 0xe5
245 TWO_BYTE_DISJOINT_OPCODE, // 0xe6
246 TWO_BYTE_DISJOINT_OPCODE, // 0xe7
247 ONE_BYTE_OPCODE, // 0xe8
248 ONE_BYTE_OPCODE, // 0xe9
249 ONE_BYTE_OPCODE, // 0xea
250 TWO_BYTE_DISJOINT_OPCODE, // 0xeb
251 TWO_BYTE_DISJOINT_OPCODE, // 0xec
252 TWO_BYTE_DISJOINT_OPCODE, // 0xed
253 ONE_BYTE_OPCODE, // 0xee
254 ONE_BYTE_OPCODE, // 0xef
255 ONE_BYTE_OPCODE, // 0xf0
256 ONE_BYTE_OPCODE, // 0xf1
257 ONE_BYTE_OPCODE, // 0xf2
258 ONE_BYTE_OPCODE, // 0xf3
259 ONE_BYTE_OPCODE, // 0xf4
260 ONE_BYTE_OPCODE, // 0xf5
261 ONE_BYTE_OPCODE, // 0xf6
262 ONE_BYTE_OPCODE, // 0xf7
263 ONE_BYTE_OPCODE, // 0xf8
264 ONE_BYTE_OPCODE, // 0xf9
265 ONE_BYTE_OPCODE, // 0xfa
266 ONE_BYTE_OPCODE, // 0xfb
267 ONE_BYTE_OPCODE, // 0xfc
268 ONE_BYTE_OPCODE, // 0xfd
269 TWO_BYTE_DISJOINT_OPCODE, // 0xfe
270 TWO_BYTE_DISJOINT_OPCODE, // 0xff
271 };
272
12 // These register names are defined in a way to match the native disassembler 273 // These register names are defined in a way to match the native disassembler
13 // formatting. See for example the command "objdump -d <binary file>". 274 // formatting. See for example the command "objdump -d <binary file>".
14 const char* Registers::names_[kNumRegisters] = { 275 const char* Registers::names_[kNumRegisters] = {
15 "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", 276 "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
16 "r8", "r9", "r10", "fp", "ip", "r13", "r14", "sp"}; 277 "r8", "r9", "r10", "fp", "ip", "r13", "r14", "sp"};
17 278
18 const char* DoubleRegisters::names_[kNumDoubleRegisters] = { 279 const char* DoubleRegisters::names_[kNumDoubleRegisters] = {
19 "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", 280 "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
20 "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15"}; 281 "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15"};
21 282
(...skipping 17 matching lines...) Expand all
39 } 300 }
40 301
41 // No register with the requested name found. 302 // No register with the requested name found.
42 return kNoRegister; 303 return kNoRegister;
43 } 304 }
44 305
45 } // namespace internal 306 } // namespace internal
46 } // namespace v8 307 } // namespace v8
47 308
48 #endif // V8_TARGET_ARCH_S390 309 #endif // V8_TARGET_ARCH_S390
OLDNEW
« no previous file with comments | « src/s390/constants-s390.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698