OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [sim/] [sh64/] [defs-compact.h] - Blame information for rev 438

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 jeremybenn
/* ISA definitions header for compact.
2
 
3
THIS FILE IS MACHINE GENERATED WITH CGEN.
4
 
5
Copyright 1996-2005 Free Software Foundation, Inc.
6
 
7
This file is part of the GNU simulators.
8
 
9
This program is free software; you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation; either version 3 of the License, or
12
(at your option) any later version.
13
 
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
GNU General Public License for more details.
18
 
19
You should have received a copy of the GNU General Public License
20
along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 
22
*/
23
 
24
#ifndef DEFS_SH64_COMPACT_H
25
#define DEFS_SH64_COMPACT_H
26
 
27
/* Instruction argument buffer.  */
28
 
29
union sem_fields {
30
  struct { /* no operands */
31
    int empty;
32
  } fmt_empty;
33
  struct { /*  */
34
    IADDR i_disp12;
35
  } sfmt_bra_compact;
36
  struct { /*  */
37
    IADDR i_disp8;
38
  } sfmt_bf_compact;
39
  struct { /*  */
40
    SI f_imm8x2;
41
    UINT f_rn;
42
  } sfmt_movw10_compact;
43
  struct { /*  */
44
    SI f_imm4x2;
45
    UINT f_rm;
46
  } sfmt_movw5_compact;
47
  struct { /*  */
48
    SI f_imm8x4;
49
    UINT f_rn;
50
  } sfmt_movl10_compact;
51
  struct { /*  */
52
    UINT f_imm4;
53
    UINT f_rm;
54
  } sfmt_movb5_compact;
55
  struct { /*  */
56
    INT f_imm20;
57
    UINT f_rn;
58
  } sfmt_movi20_compact;
59
  struct { /*  */
60
    SI f_vm;
61
    SI f_vn;
62
  } sfmt_fipr_compact;
63
  struct { /*  */
64
    UINT f_imm8;
65
    UINT f_rn;
66
  } sfmt_addi_compact;
67
  struct { /*  */
68
    SI f_imm12x4;
69
    UINT f_rm;
70
    UINT f_rn;
71
  } sfmt_movl12_compact;
72
  struct { /*  */
73
    SI f_imm4x4;
74
    UINT f_rm;
75
    UINT f_rn;
76
  } sfmt_movl5_compact;
77
  struct { /*  */
78
    SI f_dm;
79
    SI f_imm12x8;
80
    UINT f_rn;
81
  } sfmt_fmov9_compact;
82
  struct { /*  */
83
    SI f_dn;
84
    SI f_imm12x8;
85
    UINT f_rm;
86
  } sfmt_fmov8_compact;
87
#if WITH_SCACHE_PBB
88
  /* Writeback handler.  */
89
  struct {
90
    /* Pointer to argbuf entry for insn whose results need writing back.  */
91
    const struct argbuf *abuf;
92
  } write;
93
  /* x-before handler */
94
  struct {
95
    /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/
96
    int first_p;
97
  } before;
98
  /* x-after handler */
99
  struct {
100
    int empty;
101
  } after;
102
  /* This entry is used to terminate each pbb.  */
103
  struct {
104
    /* Number of insns in pbb.  */
105
    int insn_count;
106
    /* Next pbb to execute.  */
107
    SCACHE *next;
108
    SCACHE *branch_target;
109
  } chain;
110
#endif
111
};
112
 
113
/* The ARGBUF struct.  */
114
struct argbuf {
115
  /* These are the baseclass definitions.  */
116
  IADDR addr;
117
  const IDESC *idesc;
118
  char trace_p;
119
  char profile_p;
120
  /* ??? Temporary hack for skip insns.  */
121
  char skip_count;
122
  char unused;
123
  /* cpu specific data follows */
124
  union sem semantic;
125
  int written;
126
  union sem_fields fields;
127
};
128
 
129
/* A cached insn.
130
 
131
   ??? SCACHE used to contain more than just argbuf.  We could delete the
132
   type entirely and always just use ARGBUF, but for future concerns and as
133
   a level of abstraction it is left in.  */
134
 
135
struct scache {
136
  struct argbuf argbuf;
137
};
138
 
139
/* Macros to simplify extraction, reading and semantic code.
140
   These define and assign the local vars that contain the insn's fields.  */
141
 
142
#define EXTRACT_IFMT_EMPTY_VARS \
143
  unsigned int length;
144
#define EXTRACT_IFMT_EMPTY_CODE \
145
  length = 0; \
146
 
147
#define EXTRACT_IFMT_ADD_COMPACT_VARS \
148
  UINT f_op4; \
149
  UINT f_rn; \
150
  UINT f_rm; \
151
  UINT f_sub4; \
152
  unsigned int length;
153
#define EXTRACT_IFMT_ADD_COMPACT_CODE \
154
  length = 2; \
155
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
156
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
157
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
158
  f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
159
 
160
#define EXTRACT_IFMT_ADDI_COMPACT_VARS \
161
  UINT f_op4; \
162
  UINT f_rn; \
163
  UINT f_imm8; \
164
  unsigned int length;
165
#define EXTRACT_IFMT_ADDI_COMPACT_CODE \
166
  length = 2; \
167
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
168
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
169
  f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
170
 
171
#define EXTRACT_IFMT_AND_COMPACT_VARS \
172
  UINT f_op4; \
173
  UINT f_rn; \
174
  UINT f_rm; \
175
  UINT f_sub4; \
176
  unsigned int length;
177
#define EXTRACT_IFMT_AND_COMPACT_CODE \
178
  length = 2; \
179
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
180
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
181
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
182
  f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
183
 
184
#define EXTRACT_IFMT_ANDI_COMPACT_VARS \
185
  UINT f_op8; \
186
  UINT f_imm8; \
187
  unsigned int length;
188
#define EXTRACT_IFMT_ANDI_COMPACT_CODE \
189
  length = 2; \
190
  f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
191
  f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
192
 
193
#define EXTRACT_IFMT_ANDB_COMPACT_VARS \
194
  UINT f_op8; \
195
  UINT f_imm8; \
196
  unsigned int length;
197
#define EXTRACT_IFMT_ANDB_COMPACT_CODE \
198
  length = 2; \
199
  f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
200
  f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
201
 
202
#define EXTRACT_IFMT_BF_COMPACT_VARS \
203
  UINT f_op8; \
204
  SI f_disp8; \
205
  unsigned int length;
206
#define EXTRACT_IFMT_BF_COMPACT_CODE \
207
  length = 2; \
208
  f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
209
  f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (4)))); \
210
 
211
#define EXTRACT_IFMT_BRA_COMPACT_VARS \
212
  UINT f_op4; \
213
  SI f_disp12; \
214
  unsigned int length;
215
#define EXTRACT_IFMT_BRA_COMPACT_CODE \
216
  length = 2; \
217
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
218
  f_disp12 = ((((EXTRACT_MSB0_INT (insn, 16, 4, 12)) << (1))) + (((pc) + (4)))); \
219
 
220
#define EXTRACT_IFMT_BRAF_COMPACT_VARS \
221
  UINT f_op4; \
222
  UINT f_rn; \
223
  UINT f_sub8; \
224
  unsigned int length;
225
#define EXTRACT_IFMT_BRAF_COMPACT_CODE \
226
  length = 2; \
227
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
228
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
229
  f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
230
 
231
#define EXTRACT_IFMT_BRK_COMPACT_VARS \
232
  UINT f_op16; \
233
  unsigned int length;
234
#define EXTRACT_IFMT_BRK_COMPACT_CODE \
235
  length = 2; \
236
  f_op16 = EXTRACT_MSB0_UINT (insn, 16, 0, 16); \
237
 
238
#define EXTRACT_IFMT_FABS_COMPACT_VARS \
239
  UINT f_op4; \
240
  UINT f_rn; \
241
  UINT f_sub8; \
242
  unsigned int length;
243
#define EXTRACT_IFMT_FABS_COMPACT_CODE \
244
  length = 2; \
245
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
246
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
247
  f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
248
 
249
#define EXTRACT_IFMT_FADD_COMPACT_VARS \
250
  UINT f_op4; \
251
  UINT f_rn; \
252
  UINT f_rm; \
253
  UINT f_sub4; \
254
  unsigned int length;
255
#define EXTRACT_IFMT_FADD_COMPACT_CODE \
256
  length = 2; \
257
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
258
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
259
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
260
  f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
261
 
262
#define EXTRACT_IFMT_FCNVDS_COMPACT_VARS \
263
  UINT f_op4; \
264
  SI f_dn; \
265
  UINT f_7_1; \
266
  UINT f_sub8; \
267
  unsigned int length;
268
#define EXTRACT_IFMT_FCNVDS_COMPACT_CODE \
269
  length = 2; \
270
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
271
  f_dn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 3)) << (1)); \
272
  f_7_1 = EXTRACT_MSB0_UINT (insn, 16, 7, 1); \
273
  f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
274
 
275
#define EXTRACT_IFMT_FIPR_COMPACT_VARS \
276
  UINT f_op4; \
277
  SI f_vn; \
278
  SI f_vm; \
279
  UINT f_sub8; \
280
  unsigned int length;
281
#define EXTRACT_IFMT_FIPR_COMPACT_CODE \
282
  length = 2; \
283
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
284
  f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2)); \
285
  f_vm = ((EXTRACT_MSB0_UINT (insn, 16, 6, 2)) << (2)); \
286
  f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
287
 
288
#define EXTRACT_IFMT_FLDS_COMPACT_VARS \
289
  UINT f_op4; \
290
  UINT f_rn; \
291
  UINT f_sub8; \
292
  unsigned int length;
293
#define EXTRACT_IFMT_FLDS_COMPACT_CODE \
294
  length = 2; \
295
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
296
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
297
  f_sub8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \
298
 
299
#define EXTRACT_IFMT_FMAC_COMPACT_VARS \
300
  UINT f_op4; \
301
  UINT f_rn; \
302
  UINT f_rm; \
303
  UINT f_sub4; \
304
  unsigned int length;
305
#define EXTRACT_IFMT_FMAC_COMPACT_CODE \
306
  length = 2; \
307
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
308
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
309
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
310
  f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
311
 
312
#define EXTRACT_IFMT_FMOV1_COMPACT_VARS \
313
  UINT f_op4; \
314
  UINT f_rn; \
315
  UINT f_rm; \
316
  UINT f_sub4; \
317
  unsigned int length;
318
#define EXTRACT_IFMT_FMOV1_COMPACT_CODE \
319
  length = 2; \
320
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
321
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
322
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
323
  f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
324
 
325
#define EXTRACT_IFMT_FMOV2_COMPACT_VARS \
326
  UINT f_op4; \
327
  UINT f_rn; \
328
  UINT f_rm; \
329
  UINT f_sub4; \
330
  unsigned int length;
331
#define EXTRACT_IFMT_FMOV2_COMPACT_CODE \
332
  length = 2; \
333
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
334
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
335
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
336
  f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
337
 
338
#define EXTRACT_IFMT_FMOV5_COMPACT_VARS \
339
  UINT f_op4; \
340
  UINT f_rn; \
341
  UINT f_rm; \
342
  UINT f_sub4; \
343
  unsigned int length;
344
#define EXTRACT_IFMT_FMOV5_COMPACT_CODE \
345
  length = 2; \
346
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
347
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
348
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
349
  f_sub4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
350
 
351
#define EXTRACT_IFMT_FMOV8_COMPACT_VARS \
352
  UINT f_op4; \
353
  SI f_dn; \
354
  UINT f_7_1; \
355
  UINT f_rm; \
356
  UINT f_sub4; \
357
  UINT f_16_4; \
358
  SI f_imm12x8; \
359
  unsigned int length;
360
#define EXTRACT_IFMT_FMOV8_COMPACT_CODE \
361
  length = 4; \
362
  f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
363
  f_dn = ((EXTRACT_MSB0_UINT (insn, 32, 4, 3)) << (1)); \
364
  f_7_1 = EXTRACT_MSB0_UINT (insn, 32, 7, 1); \
365
  f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \
366
  f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
367
  f_16_4 = EXTRACT_MSB0_UINT (insn, 32, 16, 4); \
368
  f_imm12x8 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) << (3)); \
369
 
370
#define EXTRACT_IFMT_FMOV9_COMPACT_VARS \
371
  UINT f_op4; \
372
  UINT f_rn; \
373
  SI f_dm; \
374
  UINT f_11_1; \
375
  UINT f_sub4; \
376
  UINT f_16_4; \
377
  SI f_imm12x8; \
378
  unsigned int length;
379
#define EXTRACT_IFMT_FMOV9_COMPACT_CODE \
380
  length = 4; \
381
  f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
382
  f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \
383
  f_dm = ((EXTRACT_MSB0_UINT (insn, 32, 8, 3)) << (1)); \
384
  f_11_1 = EXTRACT_MSB0_UINT (insn, 32, 11, 1); \
385
  f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
386
  f_16_4 = EXTRACT_MSB0_UINT (insn, 32, 16, 4); \
387
  f_imm12x8 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) << (3)); \
388
 
389
#define EXTRACT_IFMT_FTRV_COMPACT_VARS \
390
  UINT f_op4; \
391
  SI f_vn; \
392
  UINT f_sub10; \
393
  unsigned int length;
394
#define EXTRACT_IFMT_FTRV_COMPACT_CODE \
395
  length = 2; \
396
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
397
  f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2)); \
398
  f_sub10 = EXTRACT_MSB0_UINT (insn, 16, 6, 10); \
399
 
400
#define EXTRACT_IFMT_MOVI20_COMPACT_VARS \
401
  UINT f_op4; \
402
  UINT f_rn; \
403
  INT f_imm20_hi; \
404
  UINT f_imm20_lo; \
405
  INT f_imm20; \
406
  UINT f_sub4; \
407
  unsigned int length;
408
#define EXTRACT_IFMT_MOVI20_COMPACT_CODE \
409
  length = 4; \
410
  f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
411
  f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \
412
  f_imm20_hi = EXTRACT_MSB0_INT (insn, 32, 8, 4); \
413
  f_imm20_lo = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \
414
  f_imm20 = ((((f_imm20_hi) << (16))) | (f_imm20_lo));\
415
  f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
416
 
417
#define EXTRACT_IFMT_MOVB5_COMPACT_VARS \
418
  UINT f_op8; \
419
  UINT f_rm; \
420
  UINT f_imm4; \
421
  unsigned int length;
422
#define EXTRACT_IFMT_MOVB5_COMPACT_CODE \
423
  length = 2; \
424
  f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
425
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
426
  f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \
427
 
428
#define EXTRACT_IFMT_MOVL4_COMPACT_VARS \
429
  UINT f_op8; \
430
  SI f_imm8x4; \
431
  unsigned int length;
432
#define EXTRACT_IFMT_MOVL4_COMPACT_CODE \
433
  length = 2; \
434
  f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
435
  f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); \
436
 
437
#define EXTRACT_IFMT_MOVL5_COMPACT_VARS \
438
  UINT f_op4; \
439
  UINT f_rn; \
440
  UINT f_rm; \
441
  SI f_imm4x4; \
442
  unsigned int length;
443
#define EXTRACT_IFMT_MOVL5_COMPACT_CODE \
444
  length = 2; \
445
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
446
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
447
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
448
  f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2)); \
449
 
450
#define EXTRACT_IFMT_MOVL10_COMPACT_VARS \
451
  UINT f_op4; \
452
  UINT f_rn; \
453
  SI f_imm8x4; \
454
  unsigned int length;
455
#define EXTRACT_IFMT_MOVL10_COMPACT_CODE \
456
  length = 2; \
457
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
458
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
459
  f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); \
460
 
461
#define EXTRACT_IFMT_MOVL12_COMPACT_VARS \
462
  UINT f_op4; \
463
  UINT f_rn; \
464
  UINT f_rm; \
465
  UINT f_sub4; \
466
  UINT f_16_4; \
467
  SI f_imm12x4; \
468
  unsigned int length;
469
#define EXTRACT_IFMT_MOVL12_COMPACT_CODE \
470
  length = 4; \
471
  f_op4 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \
472
  f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \
473
  f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \
474
  f_sub4 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \
475
  f_16_4 = EXTRACT_MSB0_UINT (insn, 32, 16, 4); \
476
  f_imm12x4 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) << (2)); \
477
 
478
#define EXTRACT_IFMT_MOVW4_COMPACT_VARS \
479
  UINT f_op8; \
480
  SI f_imm8x2; \
481
  unsigned int length;
482
#define EXTRACT_IFMT_MOVW4_COMPACT_CODE \
483
  length = 2; \
484
  f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
485
  f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); \
486
 
487
#define EXTRACT_IFMT_MOVW5_COMPACT_VARS \
488
  UINT f_op8; \
489
  UINT f_rm; \
490
  SI f_imm4x2; \
491
  unsigned int length;
492
#define EXTRACT_IFMT_MOVW5_COMPACT_CODE \
493
  length = 2; \
494
  f_op8 = EXTRACT_MSB0_UINT (insn, 16, 0, 8); \
495
  f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \
496
  f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1)); \
497
 
498
#define EXTRACT_IFMT_MOVW10_COMPACT_VARS \
499
  UINT f_op4; \
500
  UINT f_rn; \
501
  SI f_imm8x2; \
502
  unsigned int length;
503
#define EXTRACT_IFMT_MOVW10_COMPACT_CODE \
504
  length = 2; \
505
  f_op4 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \
506
  f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \
507
  f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); \
508
 
509
#endif /* DEFS_SH64_COMPACT_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.