mem64.isa (12359:8fb4630c444f) mem64.isa (12616:4b463b4dc098)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2014, 2017 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

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

254 class %(class_name)s : public %(base_class)s
255 {
256 public:
257
258 /// Constructor.
259 %(class_name)s(ExtMachInst machInst, IntRegIndex _base,
260 MiscRegIndex _dest, uint64_t _imm);
261
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2014, 2017 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

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

254 class %(class_name)s : public %(base_class)s
255 {
256 public:
257
258 /// Constructor.
259 %(class_name)s(ExtMachInst machInst, IntRegIndex _base,
260 MiscRegIndex _dest, uint64_t _imm);
261
262 Fault execute(ExecContext *, Trace::InstRecord *) const;
263 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
264 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
262 Fault execute(ExecContext *, Trace::InstRecord *) const override;
263 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
264 Fault completeAcc(PacketPtr, ExecContext *,
265 Trace::InstRecord *) const override;
265
266
266 virtual void
267 annotateFault(ArmFault *fault) {
267 void
268 annotateFault(ArmFault *fault) override
269 {
268 %(fa_code)s
269 }
270 };
271}};
272
273def template DCStore64Constructor {{
274 %(class_name)s::%(class_name)s(ExtMachInst machInst, IntRegIndex _base,
275 MiscRegIndex _dest, uint64_t _imm)

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

337 class %(class_name)s : public %(base_class)s
338 {
339 public:
340
341 /// Constructor.
342 %(class_name)s(ExtMachInst machInst,
343 IntRegIndex _dest, IntRegIndex _base, int64_t _imm);
344
270 %(fa_code)s
271 }
272 };
273}};
274
275def template DCStore64Constructor {{
276 %(class_name)s::%(class_name)s(ExtMachInst machInst, IntRegIndex _base,
277 MiscRegIndex _dest, uint64_t _imm)

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

339 class %(class_name)s : public %(base_class)s
340 {
341 public:
342
343 /// Constructor.
344 %(class_name)s(ExtMachInst machInst,
345 IntRegIndex _dest, IntRegIndex _base, int64_t _imm);
346
345 Fault execute(ExecContext *, Trace::InstRecord *) const;
346 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
347 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
347 Fault execute(ExecContext *, Trace::InstRecord *) const override;
348 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
349 Fault completeAcc(PacketPtr, ExecContext *,
350 Trace::InstRecord *) const override;
348
351
349 virtual void
350 annotateFault(ArmFault *fault) {
352 void
353 annotateFault(ArmFault *fault) override
354 {
351 %(fa_code)s
352 }
353 };
354}};
355
356def template LoadStoreImmU64Declare {{
357 class %(class_name)s : public %(base_class)s
358 {
359 public:
360
361 /// Constructor.
362 %(class_name)s(ExtMachInst machInst,
363 IntRegIndex _dest, IntRegIndex _base, int64_t _imm,
364 bool noAlloc = false, bool exclusive = false,
365 bool acrel = false);
366
355 %(fa_code)s
356 }
357 };
358}};
359
360def template LoadStoreImmU64Declare {{
361 class %(class_name)s : public %(base_class)s
362 {
363 public:
364
365 /// Constructor.
366 %(class_name)s(ExtMachInst machInst,
367 IntRegIndex _dest, IntRegIndex _base, int64_t _imm,
368 bool noAlloc = false, bool exclusive = false,
369 bool acrel = false);
370
367 Fault execute(ExecContext *, Trace::InstRecord *) const;
368 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
369 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
371 Fault execute(ExecContext *, Trace::InstRecord *) const override;
372 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
373 Fault completeAcc(PacketPtr, ExecContext *,
374 Trace::InstRecord *) const override;
370
375
371 virtual void
372 annotateFault(ArmFault *fault) {
376 void
377 annotateFault(ArmFault *fault) override
378 {
373 %(fa_code)s
374 }
375 };
376}};
377
378def template LoadStoreImmDU64Declare {{
379 class %(class_name)s : public %(base_class)s
380 {
381 public:
382
383 /// Constructor.
384 %(class_name)s(ExtMachInst machInst,
385 IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base,
386 int64_t _imm = 0, bool noAlloc = false, bool exclusive = false,
387 bool acrel = false);
388
379 %(fa_code)s
380 }
381 };
382}};
383
384def template LoadStoreImmDU64Declare {{
385 class %(class_name)s : public %(base_class)s
386 {
387 public:
388
389 /// Constructor.
390 %(class_name)s(ExtMachInst machInst,
391 IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base,
392 int64_t _imm = 0, bool noAlloc = false, bool exclusive = false,
393 bool acrel = false);
394
389 Fault execute(ExecContext *, Trace::InstRecord *) const;
390 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
391 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
395 Fault execute(ExecContext *, Trace::InstRecord *) const override;
396 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
397 Fault completeAcc(PacketPtr, ExecContext *,
398 Trace::InstRecord *) const override;
392
399
393 virtual void
394 annotateFault(ArmFault *fault) {
400 void
401 annotateFault(ArmFault *fault) override
402 {
395 %(fa_code)s
396 }
397 };
398}};
399
400def template StoreImmDEx64Declare {{
401 /**
402 * Static instruction class for "%(mnemonic)s".
403 */
404 class %(class_name)s : public %(base_class)s
405 {
406 public:
407
408 /// Constructor.
409 %(class_name)s(ExtMachInst machInst,
410 IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2,
411 IntRegIndex _base, int64_t _imm = 0);
412
403 %(fa_code)s
404 }
405 };
406}};
407
408def template StoreImmDEx64Declare {{
409 /**
410 * Static instruction class for "%(mnemonic)s".
411 */
412 class %(class_name)s : public %(base_class)s
413 {
414 public:
415
416 /// Constructor.
417 %(class_name)s(ExtMachInst machInst,
418 IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2,
419 IntRegIndex _base, int64_t _imm = 0);
420
413 Fault execute(ExecContext *, Trace::InstRecord *) const;
414 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
415 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
421 Fault execute(ExecContext *, Trace::InstRecord *) const override;
422 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
423 Fault completeAcc(PacketPtr, ExecContext *,
424 Trace::InstRecord *) const override;
416 };
417}};
418
419
420def template LoadStoreReg64Declare {{
421 class %(class_name)s : public %(base_class)s
422 {
423 public:
424
425 /// Constructor.
426 %(class_name)s(ExtMachInst machInst,
427 IntRegIndex _dest, IntRegIndex _base, IntRegIndex _offset,
428 ArmExtendType _type, uint32_t _shiftAmt);
429
425 };
426}};
427
428
429def template LoadStoreReg64Declare {{
430 class %(class_name)s : public %(base_class)s
431 {
432 public:
433
434 /// Constructor.
435 %(class_name)s(ExtMachInst machInst,
436 IntRegIndex _dest, IntRegIndex _base, IntRegIndex _offset,
437 ArmExtendType _type, uint32_t _shiftAmt);
438
430 Fault execute(ExecContext *, Trace::InstRecord *) const;
431 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
432 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
439 Fault execute(ExecContext *, Trace::InstRecord *) const override;
440 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
441 Fault completeAcc(PacketPtr, ExecContext *,
442 Trace::InstRecord *) const override;
433
443
434 virtual void
435 annotateFault(ArmFault *fault) {
444 void
445 annotateFault(ArmFault *fault) override
446 {
436 %(fa_code)s
437 }
438 };
439}};
440
441def template LoadStoreRegU64Declare {{
442 class %(class_name)s : public %(base_class)s
443 {
444 public:
445
446 /// Constructor.
447 %(class_name)s(ExtMachInst machInst,
448 IntRegIndex _dest, IntRegIndex _base, IntRegIndex _offset,
449 ArmExtendType _type, uint32_t _shiftAmt,
450 bool noAlloc = false, bool exclusive = false,
451 bool acrel = false);
452
447 %(fa_code)s
448 }
449 };
450}};
451
452def template LoadStoreRegU64Declare {{
453 class %(class_name)s : public %(base_class)s
454 {
455 public:
456
457 /// Constructor.
458 %(class_name)s(ExtMachInst machInst,
459 IntRegIndex _dest, IntRegIndex _base, IntRegIndex _offset,
460 ArmExtendType _type, uint32_t _shiftAmt,
461 bool noAlloc = false, bool exclusive = false,
462 bool acrel = false);
463
453 Fault execute(ExecContext *, Trace::InstRecord *) const;
454 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
455 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
464 Fault execute(ExecContext *, Trace::InstRecord *) const override;
465 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
466 Fault completeAcc(PacketPtr, ExecContext *,
467 Trace::InstRecord *) const override;
456
468
457 virtual void
458 annotateFault(ArmFault *fault) {
469 void
470 annotateFault(ArmFault *fault) override
471 {
459 %(fa_code)s
460 }
461 };
462}};
463
464def template LoadStoreRaw64Declare {{
465 class %(class_name)s : public %(base_class)s
466 {
467 public:
468
469 /// Constructor.
470 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest,
471 IntRegIndex _base);
472
472 %(fa_code)s
473 }
474 };
475}};
476
477def template LoadStoreRaw64Declare {{
478 class %(class_name)s : public %(base_class)s
479 {
480 public:
481
482 /// Constructor.
483 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest,
484 IntRegIndex _base);
485
473 Fault execute(ExecContext *, Trace::InstRecord *) const;
474 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
475 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
486 Fault execute(ExecContext *, Trace::InstRecord *) const override;
487 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
488 Fault completeAcc(PacketPtr, ExecContext *,
489 Trace::InstRecord *) const override;
476
490
477 virtual void
478 annotateFault(ArmFault *fault) {
491 void
492 annotateFault(ArmFault *fault) override
493 {
479 %(fa_code)s
480 }
481 };
482}};
483
484def template LoadStoreEx64Declare {{
485 class %(class_name)s : public %(base_class)s
486 {
487 public:
488
489 /// Constructor.
490 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest,
491 IntRegIndex _base, IntRegIndex _result);
492
494 %(fa_code)s
495 }
496 };
497}};
498
499def template LoadStoreEx64Declare {{
500 class %(class_name)s : public %(base_class)s
501 {
502 public:
503
504 /// Constructor.
505 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest,
506 IntRegIndex _base, IntRegIndex _result);
507
493 Fault execute(ExecContext *, Trace::InstRecord *) const;
494 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
495 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
508 Fault execute(ExecContext *, Trace::InstRecord *) const override;
509 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
510 Fault completeAcc(PacketPtr, ExecContext *,
511 Trace::InstRecord *) const override;
496
512
497 virtual void
498 annotateFault(ArmFault *fault) {
513 void
514 annotateFault(ArmFault *fault) override
515 {
499 %(fa_code)s
500 }
501 };
502}};
503
504def template LoadStoreLit64Declare {{
505 class %(class_name)s : public %(base_class)s
506 {
507 public:
508
509 /// Constructor.
510 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest, int64_t _imm);
511
516 %(fa_code)s
517 }
518 };
519}};
520
521def template LoadStoreLit64Declare {{
522 class %(class_name)s : public %(base_class)s
523 {
524 public:
525
526 /// Constructor.
527 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest, int64_t _imm);
528
512 Fault execute(ExecContext *, Trace::InstRecord *) const;
513 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
514 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
529 Fault execute(ExecContext *, Trace::InstRecord *) const override;
530 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
531 Fault completeAcc(PacketPtr, ExecContext *,
532 Trace::InstRecord *) const override;
515
533
516 virtual void
517 annotateFault(ArmFault *fault) {
534 void
535 annotateFault(ArmFault *fault) override
536 {
518 %(fa_code)s
519 }
520 };
521}};
522
523def template LoadStoreLitU64Declare {{
524 class %(class_name)s : public %(base_class)s
525 {
526 public:
527
528 /// Constructor.
529 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest, int64_t _imm,
530 bool noAlloc = false, bool exclusive = false,
531 bool acrel = false);
532
537 %(fa_code)s
538 }
539 };
540}};
541
542def template LoadStoreLitU64Declare {{
543 class %(class_name)s : public %(base_class)s
544 {
545 public:
546
547 /// Constructor.
548 %(class_name)s(ExtMachInst machInst, IntRegIndex _dest, int64_t _imm,
549 bool noAlloc = false, bool exclusive = false,
550 bool acrel = false);
551
533 Fault execute(ExecContext *, Trace::InstRecord *) const;
534 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
535 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
552 Fault execute(ExecContext *, Trace::InstRecord *) const override;
553 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
554 Fault completeAcc(PacketPtr, ExecContext *,
555 Trace::InstRecord *) const override;
536
556
537 virtual void
538 annotateFault(ArmFault *fault) {
557 void
558 annotateFault(ArmFault *fault) override
559 {
539 %(fa_code)s
540 }
541 };
542}};
543
544def template LoadStoreImm64Constructor {{
545 %(class_name)s::%(class_name)s(ExtMachInst machInst,
546 IntRegIndex _dest, IntRegIndex _base, int64_t _imm)

--- 140 unchanged lines hidden ---
560 %(fa_code)s
561 }
562 };
563}};
564
565def template LoadStoreImm64Constructor {{
566 %(class_name)s::%(class_name)s(ExtMachInst machInst,
567 IntRegIndex _dest, IntRegIndex _base, int64_t _imm)

--- 140 unchanged lines hidden ---