macromem.isa (9369:bd30fcbf8d28) macromem.isa (10037:5cac77888310)
1// -*- mode:c++ -*-
2
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
3// Copyright (c) 2010-2013 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating
9// to a hardware implementation of the functionality of the software
10// licensed hereunder. You may use the software subject to the license
11// terms below provided that you ensure that this notice is replicated

--- 321 unchanged lines hidden (view full) ---

333 if (!(condCode == COND_AL || condCode == COND_UC)) {
334 for (int x = 0; x < _numDestRegs; x++) {
335 _srcRegIdx[_numSrcRegs++] = _destRegIdx[x];
336 }
337 }
338 }
339}};
340
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating
9// to a hardware implementation of the functionality of the software
10// licensed hereunder. You may use the software subject to the license
11// terms below provided that you ensure that this notice is replicated

--- 321 unchanged lines hidden (view full) ---

333 if (!(condCode == COND_AL || condCode == COND_UC)) {
334 for (int x = 0; x < _numDestRegs; x++) {
335 _srcRegIdx[_numSrcRegs++] = _destRegIdx[x];
336 }
337 }
338 }
339}};
340
341def template MicroIntImmXConstructor {{
342 %(class_name)s::%(class_name)s(ExtMachInst machInst,
343 RegIndex _ura,
344 RegIndex _urb,
345 int32_t _imm)
346 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
347 _ura, _urb, _imm)
348 {
349 %(constructor)s;
350 }
351}};
352
341def template MicroIntRegDeclare {{
342 class %(class_name)s : public %(base_class)s
343 {
344 public:
345 %(class_name)s(ExtMachInst machInst,
346 RegIndex _ura, RegIndex _urb, RegIndex _urc,
347 int32_t _shiftAmt, ArmShiftType _shiftType);
348 %(BasicExecDeclare)s
349 };
350}};
351
353def template MicroIntRegDeclare {{
354 class %(class_name)s : public %(base_class)s
355 {
356 public:
357 %(class_name)s(ExtMachInst machInst,
358 RegIndex _ura, RegIndex _urb, RegIndex _urc,
359 int32_t _shiftAmt, ArmShiftType _shiftType);
360 %(BasicExecDeclare)s
361 };
362}};
363
364def template MicroIntXERegConstructor {{
365 %(class_name)s::%(class_name)s(ExtMachInst machInst,
366 RegIndex _ura, RegIndex _urb, RegIndex _urc,
367 ArmExtendType _type, uint32_t _shiftAmt)
368 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
369 _ura, _urb, _urc, _type, _shiftAmt)
370 {
371 %(constructor)s;
372 }
373}};
374
375def template MicroIntXERegDeclare {{
376 class %(class_name)s : public %(base_class)s
377 {
378 public:
379 %(class_name)s(ExtMachInst machInst,
380 RegIndex _ura, RegIndex _urb, RegIndex _urc,
381 ArmExtendType _type, uint32_t _shiftAmt);
382 %(BasicExecDeclare)s
383 };
384}};
385
352def template MicroIntRegConstructor {{
353 %(class_name)s::%(class_name)s(ExtMachInst machInst,
354 RegIndex _ura, RegIndex _urb, RegIndex _urc,
355 int32_t _shiftAmt, ArmShiftType _shiftType)
356 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
357 _ura, _urb, _urc, _shiftAmt, _shiftType)
358 {
359 %(constructor)s;

--- 37 unchanged lines hidden (view full) ---

397 for (int x = 0; x < _numDestRegs; x++) {
398 _srcRegIdx[_numSrcRegs++] = _destRegIdx[x];
399 }
400 }
401}
402
403}};
404
386def template MicroIntRegConstructor {{
387 %(class_name)s::%(class_name)s(ExtMachInst machInst,
388 RegIndex _ura, RegIndex _urb, RegIndex _urc,
389 int32_t _shiftAmt, ArmShiftType _shiftType)
390 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
391 _ura, _urb, _urc, _shiftAmt, _shiftType)
392 {
393 %(constructor)s;

--- 37 unchanged lines hidden (view full) ---

431 for (int x = 0; x < _numDestRegs; x++) {
432 _srcRegIdx[_numSrcRegs++] = _destRegIdx[x];
433 }
434 }
435}
436
437}};
438
439def template BigFpMemImmDeclare {{
440class %(class_name)s : public %(base_class)s
441{
442 public:
443 // Constructor
444 %(class_name)s(const char *mnemonic, ExtMachInst machInst,
445 bool load, IntRegIndex dest, IntRegIndex base, int64_t imm);
446 %(BasicExecPanic)s
447};
448}};
449
450def template BigFpMemImmConstructor {{
451%(class_name)s::%(class_name)s(const char *mnemonic, ExtMachInst machInst,
452 bool load, IntRegIndex dest, IntRegIndex base, int64_t imm)
453 : %(base_class)s(mnemonic, machInst, %(op_class)s, load, dest, base, imm)
454{
455 %(constructor)s;
456}
457}};
458
459def template BigFpMemRegDeclare {{
460class %(class_name)s : public %(base_class)s
461{
462 public:
463 // Constructor
464 %(class_name)s(const char *mnemonic, ExtMachInst machInst,
465 bool load, IntRegIndex dest, IntRegIndex base,
466 IntRegIndex offset, ArmExtendType type, int64_t imm);
467 %(BasicExecPanic)s
468};
469}};
470
471def template BigFpMemRegConstructor {{
472%(class_name)s::%(class_name)s(const char *mnemonic, ExtMachInst machInst,
473 bool load, IntRegIndex dest, IntRegIndex base,
474 IntRegIndex offset, ArmExtendType type, int64_t imm)
475 : %(base_class)s(mnemonic, machInst, %(op_class)s, load, dest, base,
476 offset, type, imm)
477{
478 %(constructor)s;
479}
480}};
481
482def template BigFpMemLitDeclare {{
483class %(class_name)s : public %(base_class)s
484{
485 public:
486 // Constructor
487 %(class_name)s(const char *mnemonic, ExtMachInst machInst,
488 IntRegIndex dest, int64_t imm);
489 %(BasicExecPanic)s
490};
491}};
492
493def template BigFpMemLitConstructor {{
494%(class_name)s::%(class_name)s(const char *mnemonic, ExtMachInst machInst,
495 IntRegIndex dest, int64_t imm)
496 : %(base_class)s(mnemonic, machInst, %(op_class)s, dest, imm)
497{
498 %(constructor)s;
499}
500}};
501
502def template PairMemDeclare {{
503class %(class_name)s : public %(base_class)s
504{
505 public:
506 // Constructor
507 %(class_name)s(const char *mnemonic, ExtMachInst machInst,
508 uint32_t size, bool fp, bool load, bool noAlloc, bool signExt,
509 bool exclusive, bool acrel, uint32_t imm,
510 AddrMode mode, IntRegIndex rn, IntRegIndex rt,
511 IntRegIndex rt2);
512 %(BasicExecPanic)s
513};
514}};
515
516def template PairMemConstructor {{
517%(class_name)s::%(class_name)s(const char *mnemonic, ExtMachInst machInst,
518 uint32_t size, bool fp, bool load, bool noAlloc, bool signExt,
519 bool exclusive, bool acrel, uint32_t imm, AddrMode mode,
520 IntRegIndex rn, IntRegIndex rt, IntRegIndex rt2)
521 : %(base_class)s(mnemonic, machInst, %(op_class)s, size,
522 fp, load, noAlloc, signExt, exclusive, acrel,
523 imm, mode, rn, rt, rt2)
524{
525 %(constructor)s;
526}
527}};
528
405def template VMemMultDeclare {{
406class %(class_name)s : public %(base_class)s
407{
408 public:
409 // Constructor
410 %(class_name)s(ExtMachInst machInst, unsigned width,
411 RegIndex rn, RegIndex vd, unsigned regs, unsigned inc,
412 uint32_t size, uint32_t align, RegIndex rm);

--- 79 unchanged lines hidden ---
529def template VMemMultDeclare {{
530class %(class_name)s : public %(base_class)s
531{
532 public:
533 // Constructor
534 %(class_name)s(ExtMachInst machInst, unsigned width,
535 RegIndex rn, RegIndex vd, unsigned regs, unsigned inc,
536 uint32_t size, uint32_t align, RegIndex rm);

--- 79 unchanged lines hidden ---