@@ -40,49 +40,67 @@ void RegistersView::InitMappings()
40
40
#ifdef _WIN64
41
41
mRegisterMapping .insert (CAX, " RAX" );
42
42
mRegisterPlaces .insert (CAX, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
43
+ mRegisterRelativePlaces .insert (CAX, Register_Relative_Position (UNKNOWN, CBX));
43
44
mRegisterMapping .insert (CBX, " RBX" );
44
45
mRegisterPlaces .insert (CBX, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
46
+ mRegisterRelativePlaces .insert (CBX, Register_Relative_Position (CAX, CCX));
45
47
mRegisterMapping .insert (CCX, " RCX" );
46
48
mRegisterPlaces .insert (CCX, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
49
+ mRegisterRelativePlaces .insert (CCX, Register_Relative_Position (CBX, CDX));
47
50
mRegisterMapping .insert (CDX, " RDX" );
48
51
mRegisterPlaces .insert (CDX, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
52
+ mRegisterRelativePlaces .insert (CDX, Register_Relative_Position (CCX, CBP));
49
53
mRegisterMapping .insert (CBP, " RBP" );
50
54
mRegisterPlaces .insert (CBP, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
55
+ mRegisterRelativePlaces .insert (CBP, Register_Relative_Position (CDX, CSP));
51
56
mRegisterMapping .insert (CSP, " RSP" );
52
57
mRegisterPlaces .insert (CSP, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
58
+ mRegisterRelativePlaces .insert (CSP, Register_Relative_Position (CBP, CSI));
53
59
mRegisterMapping .insert (CSI, " RSI" );
54
60
mRegisterPlaces .insert (CSI, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
61
+ mRegisterRelativePlaces .insert (CSI, Register_Relative_Position (CSP, CDI));
55
62
mRegisterMapping .insert (CDI, " RDI" );
56
63
mRegisterPlaces .insert (CDI, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
64
+ mRegisterRelativePlaces .insert (CDI, Register_Relative_Position (CSI, R8));
57
65
58
66
offset++;
59
67
60
68
mRegisterMapping .insert (R8, " R8" );
61
69
mRegisterPlaces .insert (R8, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
70
+ mRegisterRelativePlaces .insert (R8, Register_Relative_Position (CDI, R9));
62
71
mRegisterMapping .insert (R9, " R9" );
63
72
mRegisterPlaces .insert (R9, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
73
+ mRegisterRelativePlaces .insert (R9, Register_Relative_Position (R8, R10));
64
74
mRegisterMapping .insert (R10, " R10" );
65
75
mRegisterPlaces .insert (R10, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
76
+ mRegisterRelativePlaces .insert (R10, Register_Relative_Position (R9, R11));
66
77
mRegisterMapping .insert (R11, " R11" );
67
78
mRegisterPlaces .insert (R11, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
79
+ mRegisterRelativePlaces .insert (R11, Register_Relative_Position (R10, R12));
68
80
mRegisterMapping .insert (R12, " R12" );
69
81
mRegisterPlaces .insert (R12, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
82
+ mRegisterRelativePlaces .insert (R12, Register_Relative_Position (R11, R13));
70
83
mRegisterMapping .insert (R13, " R13" );
71
84
mRegisterPlaces .insert (R13, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
85
+ mRegisterRelativePlaces .insert (R13, Register_Relative_Position (R12, R14));
72
86
mRegisterMapping .insert (R14, " R14" );
73
87
mRegisterPlaces .insert (R14, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
88
+ mRegisterRelativePlaces .insert (R14, Register_Relative_Position (R13, R15));
74
89
mRegisterMapping .insert (R15, " R15" );
75
90
mRegisterPlaces .insert (R15, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
91
+ mRegisterRelativePlaces .insert (R15, Register_Relative_Position (R14, CIP));
76
92
77
93
offset++;
78
94
79
95
mRegisterMapping .insert (CIP, " RIP" );
80
96
mRegisterPlaces .insert (CIP, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
97
+ mRegisterRelativePlaces .insert (CIP, Register_Relative_Position (R15, EFLAGS));
81
98
82
99
offset++;
83
100
84
101
mRegisterMapping .insert (EFLAGS, " RFLAGS" );
85
102
mRegisterPlaces .insert (EFLAGS, Register_Position (offset++, 0 , 9 , sizeof (duint) * 2 ));
103
+ mRegisterRelativePlaces .insert (EFLAGS, Register_Relative_Position (CIP, ZF));
86
104
#else // x32
87
105
mRegisterMapping .insert (CAX, " EAX" );
88
106
mRegisterPlaces .insert (CAX, Register_Position (offset++, 0 , 6 , sizeof (duint) * 2 ));
@@ -614,7 +632,7 @@ void RegistersView::InitMappings()
614
632
mRegisterRelativePlaces .insert (YMM14, Register_Relative_Position (YMM13, YMM15));
615
633
mRegisterMapping .insert (YMM15, " YMM15" );
616
634
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 ));
618
636
#endif
619
637
}
620
638
0 commit comments