Skip to content

Commit 54bd25b

Browse files
dl471mrexodia
authored andcommitted
Add arrow key movements for remaining FPU registers
1 parent 9d1c72f commit 54bd25b

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

src/gui/Src/Gui/RegistersView.cpp

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,93 +469,152 @@ void RegistersView::InitMappings()
469469

470470
mRegisterMapping.insert(MM0, "MM0");
471471
mRegisterPlaces.insert(MM0, Register_Position(offset++, 0, 4, 8 * 2));
472+
mRegisterRelativePlaces.insert(MM0, Register_Relative_Position(MxCsr_RC, MM1));
472473
mRegisterMapping.insert(MM1, "MM1");
473474
mRegisterPlaces.insert(MM1, Register_Position(offset++, 0, 4, 8 * 2));
475+
mRegisterRelativePlaces.insert(MM1, Register_Relative_Position(MM0, MM2));
474476
mRegisterMapping.insert(MM2, "MM2");
475477
mRegisterPlaces.insert(MM2, Register_Position(offset++, 0, 4, 8 * 2));
478+
mRegisterRelativePlaces.insert(MM2, Register_Relative_Position(MM1, MM3));
476479
mRegisterMapping.insert(MM3, "MM3");
477480
mRegisterPlaces.insert(MM3, Register_Position(offset++, 0, 4, 8 * 2));
481+
mRegisterRelativePlaces.insert(MM3, Register_Relative_Position(MM2, MM4));
478482
mRegisterMapping.insert(MM4, "MM4");
479483
mRegisterPlaces.insert(MM4, Register_Position(offset++, 0, 4, 8 * 2));
484+
mRegisterRelativePlaces.insert(MM4, Register_Relative_Position(MM3, MM5));
480485
mRegisterMapping.insert(MM5, "MM5");
481486
mRegisterPlaces.insert(MM5, Register_Position(offset++, 0, 4, 8 * 2));
487+
mRegisterRelativePlaces.insert(MM5, Register_Relative_Position(MM4, MM6));
482488
mRegisterMapping.insert(MM6, "MM6");
483489
mRegisterPlaces.insert(MM6, Register_Position(offset++, 0, 4, 8 * 2));
490+
mRegisterRelativePlaces.insert(MM6, Register_Relative_Position(MM5, MM7));
484491
mRegisterMapping.insert(MM7, "MM7");
485492
mRegisterPlaces.insert(MM7, Register_Position(offset++, 0, 4, 8 * 2));
493+
mRegisterRelativePlaces.insert(MM7, Register_Relative_Position(MM6, XMM0));
494+
486495

487496
offset++;
488497

489498
mRegisterMapping.insert(XMM0, "XMM0");
490499
mRegisterPlaces.insert(XMM0, Register_Position(offset++, 0, 6, 16 * 2));
500+
mRegisterRelativePlaces.insert(XMM0, Register_Relative_Position(MM7, XMM1));
491501
mRegisterMapping.insert(XMM1, "XMM1");
492502
mRegisterPlaces.insert(XMM1, Register_Position(offset++, 0, 6, 16 * 2));
503+
mRegisterRelativePlaces.insert(XMM1, Register_Relative_Position(XMM0, XMM2));
493504
mRegisterMapping.insert(XMM2, "XMM2");
494505
mRegisterPlaces.insert(XMM2, Register_Position(offset++, 0, 6, 16 * 2));
506+
mRegisterRelativePlaces.insert(XMM2, Register_Relative_Position(XMM1, XMM3));
495507
mRegisterMapping.insert(XMM3, "XMM3");
496508
mRegisterPlaces.insert(XMM3, Register_Position(offset++, 0, 6, 16 * 2));
509+
mRegisterRelativePlaces.insert(XMM3, Register_Relative_Position(XMM2, XMM4));
497510
mRegisterMapping.insert(XMM4, "XMM4");
498511
mRegisterPlaces.insert(XMM4, Register_Position(offset++, 0, 6, 16 * 2));
512+
mRegisterRelativePlaces.insert(XMM4, Register_Relative_Position(XMM3, XMM5));
499513
mRegisterMapping.insert(XMM5, "XMM5");
500514
mRegisterPlaces.insert(XMM5, Register_Position(offset++, 0, 6, 16 * 2));
515+
mRegisterRelativePlaces.insert(XMM5, Register_Relative_Position(XMM4, XMM6));
501516
mRegisterMapping.insert(XMM6, "XMM6");
502517
mRegisterPlaces.insert(XMM6, Register_Position(offset++, 0, 6, 16 * 2));
518+
mRegisterRelativePlaces.insert(XMM6, Register_Relative_Position(XMM5, XMM7));
519+
#ifndef _WIN64
520+
mRegisterMapping.insert(XMM7, "XMM7");
521+
mRegisterPlaces.insert(XMM7, Register_Position(offset++, 0, 6, 16 * 2));
522+
mRegisterRelativePlaces.insert(XMM7, Register_Relative_Position(XMM6, YMM0));
523+
#else
503524
mRegisterMapping.insert(XMM7, "XMM7");
504525
mRegisterPlaces.insert(XMM7, Register_Position(offset++, 0, 6, 16 * 2));
526+
mRegisterRelativePlaces.insert(XMM7, Register_Relative_Position(XMM6, XMM8));
527+
#endif
505528
#ifdef _WIN64
506529
mRegisterMapping.insert(XMM8, "XMM8");
507530
mRegisterPlaces.insert(XMM8, Register_Position(offset++, 0, 6, 16 * 2));
531+
mRegisterRelativePlaces.insert(XMM8, Register_Relative_Position(XMM7, XMM9));
508532
mRegisterMapping.insert(XMM9, "XMM9");
509533
mRegisterPlaces.insert(XMM9, Register_Position(offset++, 0, 6, 16 * 2));
534+
mRegisterRelativePlaces.insert(XMM9, Register_Relative_Position(XMM8, XMM10));
510535
mRegisterMapping.insert(XMM10, "XMM10");
511536
mRegisterPlaces.insert(XMM10, Register_Position(offset++, 0, 6, 16 * 2));
537+
mRegisterRelativePlaces.insert(XMM10, Register_Relative_Position(XMM9, XMM11));
512538
mRegisterMapping.insert(XMM11, "XMM11");
513539
mRegisterPlaces.insert(XMM11, Register_Position(offset++, 0, 6, 16 * 2));
540+
mRegisterRelativePlaces.insert(XMM11, Register_Relative_Position(XMM10, XMM12));
514541
mRegisterMapping.insert(XMM12, "XMM12");
515542
mRegisterPlaces.insert(XMM12, Register_Position(offset++, 0, 6, 16 * 2));
543+
mRegisterRelativePlaces.insert(XMM12, Register_Relative_Position(XMM11, XMM13));
516544
mRegisterMapping.insert(XMM13, "XMM13");
517545
mRegisterPlaces.insert(XMM13, Register_Position(offset++, 0, 6, 16 * 2));
546+
mRegisterRelativePlaces.insert(XMM13, Register_Relative_Position(XMM12, XMM14));
518547
mRegisterMapping.insert(XMM14, "XMM14");
519548
mRegisterPlaces.insert(XMM14, Register_Position(offset++, 0, 6, 16 * 2));
549+
mRegisterRelativePlaces.insert(XMM14, Register_Relative_Position(XMM13, XMM15));
520550
mRegisterMapping.insert(XMM15, "XMM15");
521551
mRegisterPlaces.insert(XMM15, Register_Position(offset++, 0, 6, 16 * 2));
552+
mRegisterRelativePlaces.insert(XMM15, Register_Relative_Position(XMM14, YMM0));
522553
#endif
523554

524555
offset++;
525556

557+
#ifndef _WIN64
526558
mRegisterMapping.insert(YMM0, "YMM0");
527559
mRegisterPlaces.insert(YMM0, Register_Position(offset++, 0, 6, 32 * 2));
560+
mRegisterRelativePlaces.insert(YMM0, Register_Relative_Position(XMM7, YMM1));
561+
#else
562+
mRegisterMapping.insert(YMM0, "YMM0");
563+
mRegisterPlaces.insert(YMM0, Register_Position(offset++, 0, 6, 32 * 2));
564+
mRegisterRelativePlaces.insert(YMM0, Register_Relative_Position(XMM15, YMM1));
565+
#endif
528566
mRegisterMapping.insert(YMM1, "YMM1");
529567
mRegisterPlaces.insert(YMM1, Register_Position(offset++, 0, 6, 32 * 2));
568+
mRegisterRelativePlaces.insert(YMM1, Register_Relative_Position(YMM0, YMM2));
530569
mRegisterMapping.insert(YMM2, "YMM2");
531570
mRegisterPlaces.insert(YMM2, Register_Position(offset++, 0, 6, 32 * 2));
571+
mRegisterRelativePlaces.insert(YMM2, Register_Relative_Position(YMM1, YMM3));
532572
mRegisterMapping.insert(YMM3, "YMM3");
533573
mRegisterPlaces.insert(YMM3, Register_Position(offset++, 0, 6, 32 * 2));
574+
mRegisterRelativePlaces.insert(YMM3, Register_Relative_Position(YMM2, YMM4));
534575
mRegisterMapping.insert(YMM4, "YMM4");
535576
mRegisterPlaces.insert(YMM4, Register_Position(offset++, 0, 6, 32 * 2));
577+
mRegisterRelativePlaces.insert(YMM4, Register_Relative_Position(YMM3, YMM5));
536578
mRegisterMapping.insert(YMM5, "YMM5");
537579
mRegisterPlaces.insert(YMM5, Register_Position(offset++, 0, 6, 32 * 2));
580+
mRegisterRelativePlaces.insert(YMM5, Register_Relative_Position(YMM4, YMM6));
538581
mRegisterMapping.insert(YMM6, "YMM6");
539582
mRegisterPlaces.insert(YMM6, Register_Position(offset++, 0, 6, 32 * 2));
583+
mRegisterRelativePlaces.insert(YMM6, Register_Relative_Position(YMM5, YMM7));
584+
#ifndef _WIN64
585+
mRegisterMapping.insert(YMM7, "YMM7");
586+
mRegisterPlaces.insert(YMM7, Register_Position(offset++, 0, 6, 32 * 2));
587+
mRegisterRelativePlaces.insert(YMM7, Register_Relative_Position(YMM6, DR0));
588+
#else
540589
mRegisterMapping.insert(YMM7, "YMM7");
541590
mRegisterPlaces.insert(YMM7, Register_Position(offset++, 0, 6, 32 * 2));
591+
mRegisterRelativePlaces.insert(YMM7, Register_Relative_Position(YMM6, YMM8));
592+
#endif
542593
#ifdef _WIN64
543594
mRegisterMapping.insert(YMM8, "YMM8");
544595
mRegisterPlaces.insert(YMM8, Register_Position(offset++, 0, 6, 32 * 2));
596+
mRegisterRelativePlaces.insert(YMM8, Register_Relative_Position(YMM7, YMM9));
545597
mRegisterMapping.insert(YMM9, "YMM9");
546598
mRegisterPlaces.insert(YMM9, Register_Position(offset++, 0, 6, 32 * 2));
599+
mRegisterRelativePlaces.insert(YMM9, Register_Relative_Position(YMM8, YMM10));
547600
mRegisterMapping.insert(YMM10, "YMM10");
548601
mRegisterPlaces.insert(YMM10, Register_Position(offset++, 0, 6, 32 * 2));
602+
mRegisterRelativePlaces.insert(YMM10, Register_Relative_Position(YMM9, YMM11));
549603
mRegisterMapping.insert(YMM11, "YMM11");
550604
mRegisterPlaces.insert(YMM11, Register_Position(offset++, 0, 6, 32 * 2));
605+
mRegisterRelativePlaces.insert(YMM11, Register_Relative_Position(YMM10, YMM12));
551606
mRegisterMapping.insert(YMM12, "YMM12");
552607
mRegisterPlaces.insert(YMM12, Register_Position(offset++, 0, 6, 32 * 2));
608+
mRegisterRelativePlaces.insert(YMM12, Register_Relative_Position(YMM11, YMM13));
553609
mRegisterMapping.insert(YMM13, "YMM13");
554610
mRegisterPlaces.insert(YMM13, Register_Position(offset++, 0, 6, 32 * 2));
611+
mRegisterRelativePlaces.insert(YMM13, Register_Relative_Position(YMM12, YMM14));
555612
mRegisterMapping.insert(YMM14, "YMM14");
556613
mRegisterPlaces.insert(YMM14, Register_Position(offset++, 0, 6, 32 * 2));
614+
mRegisterRelativePlaces.insert(YMM14, Register_Relative_Position(YMM13, YMM15));
557615
mRegisterMapping.insert(YMM15, "YMM15");
558616
mRegisterPlaces.insert(YMM15, Register_Position(offset++, 0, 6, 32 * 2));
617+
mRegisterRelativePlaces.insert(YMM15, Register_Relative_Position(YMM14, UNKNOWN));
559618
#endif
560619
}
561620

0 commit comments

Comments
 (0)