Skip to content

Commit 8253a84

Browse files
dl471mrexodia
authored andcommitted
Add arrow key movements for x64 registers
1 parent 54bd25b commit 8253a84

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/gui/Src/Gui/RegistersView.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,49 +40,67 @@ void RegistersView::InitMappings()
4040
#ifdef _WIN64
4141
mRegisterMapping.insert(CAX, "RAX");
4242
mRegisterPlaces.insert(CAX, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
43+
mRegisterRelativePlaces.insert(CAX, Register_Relative_Position(UNKNOWN, CBX));
4344
mRegisterMapping.insert(CBX, "RBX");
4445
mRegisterPlaces.insert(CBX, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
46+
mRegisterRelativePlaces.insert(CBX, Register_Relative_Position(CAX, CCX));
4547
mRegisterMapping.insert(CCX, "RCX");
4648
mRegisterPlaces.insert(CCX, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
49+
mRegisterRelativePlaces.insert(CCX, Register_Relative_Position(CBX, CDX));
4750
mRegisterMapping.insert(CDX, "RDX");
4851
mRegisterPlaces.insert(CDX, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
52+
mRegisterRelativePlaces.insert(CDX, Register_Relative_Position(CCX, CBP));
4953
mRegisterMapping.insert(CBP, "RBP");
5054
mRegisterPlaces.insert(CBP, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
55+
mRegisterRelativePlaces.insert(CBP, Register_Relative_Position(CDX, CSP));
5156
mRegisterMapping.insert(CSP, "RSP");
5257
mRegisterPlaces.insert(CSP, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
58+
mRegisterRelativePlaces.insert(CSP, Register_Relative_Position(CBP, CSI));
5359
mRegisterMapping.insert(CSI, "RSI");
5460
mRegisterPlaces.insert(CSI, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
61+
mRegisterRelativePlaces.insert(CSI, Register_Relative_Position(CSP, CDI));
5562
mRegisterMapping.insert(CDI, "RDI");
5663
mRegisterPlaces.insert(CDI, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
64+
mRegisterRelativePlaces.insert(CDI, Register_Relative_Position(CSI, R8));
5765

5866
offset++;
5967

6068
mRegisterMapping.insert(R8, "R8");
6169
mRegisterPlaces.insert(R8, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
70+
mRegisterRelativePlaces.insert(R8, Register_Relative_Position(CDI, R9));
6271
mRegisterMapping.insert(R9, "R9");
6372
mRegisterPlaces.insert(R9, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
73+
mRegisterRelativePlaces.insert(R9, Register_Relative_Position(R8, R10));
6474
mRegisterMapping.insert(R10, "R10");
6575
mRegisterPlaces.insert(R10, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
76+
mRegisterRelativePlaces.insert(R10, Register_Relative_Position(R9, R11));
6677
mRegisterMapping.insert(R11, "R11");
6778
mRegisterPlaces.insert(R11, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
79+
mRegisterRelativePlaces.insert(R11, Register_Relative_Position(R10, R12));
6880
mRegisterMapping.insert(R12, "R12");
6981
mRegisterPlaces.insert(R12, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
82+
mRegisterRelativePlaces.insert(R12, Register_Relative_Position(R11, R13));
7083
mRegisterMapping.insert(R13, "R13");
7184
mRegisterPlaces.insert(R13, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
85+
mRegisterRelativePlaces.insert(R13, Register_Relative_Position(R12, R14));
7286
mRegisterMapping.insert(R14, "R14");
7387
mRegisterPlaces.insert(R14, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
88+
mRegisterRelativePlaces.insert(R14, Register_Relative_Position(R13, R15));
7489
mRegisterMapping.insert(R15, "R15");
7590
mRegisterPlaces.insert(R15, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
91+
mRegisterRelativePlaces.insert(R15, Register_Relative_Position(R14, CIP));
7692

7793
offset++;
7894

7995
mRegisterMapping.insert(CIP, "RIP");
8096
mRegisterPlaces.insert(CIP, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
97+
mRegisterRelativePlaces.insert(CIP, Register_Relative_Position(R15, EFLAGS));
8198

8299
offset++;
83100

84101
mRegisterMapping.insert(EFLAGS, "RFLAGS");
85102
mRegisterPlaces.insert(EFLAGS, Register_Position(offset++, 0, 9, sizeof(duint) * 2));
103+
mRegisterRelativePlaces.insert(EFLAGS, Register_Relative_Position(CIP, ZF));
86104
#else //x32
87105
mRegisterMapping.insert(CAX, "EAX");
88106
mRegisterPlaces.insert(CAX, Register_Position(offset++, 0, 6, sizeof(duint) * 2));
@@ -614,7 +632,7 @@ void RegistersView::InitMappings()
614632
mRegisterRelativePlaces.insert(YMM14, Register_Relative_Position(YMM13, YMM15));
615633
mRegisterMapping.insert(YMM15, "YMM15");
616634
mRegisterPlaces.insert(YMM15, Register_Position(offset++, 0, 6, 32 * 2));
617-
mRegisterRelativePlaces.insert(YMM15, Register_Relative_Position(YMM14, UNKNOWN));
635+
mRegisterRelativePlaces.insert(YMM15, Register_Relative_Position(YMM14, DR0));
618636
#endif
619637
}
620638

0 commit comments

Comments
 (0)