@@ -209,45 +209,74 @@ void RegistersView::InitMappings()
209
209
{
210
210
mRegisterMapping .insert (x87r0, " x87r0" );
211
211
mRegisterPlaces .insert (x87r0, Register_Position (offset++, 0 , 6 , 10 * 2 ));
212
+ mRegisterRelativePlaces .insert (x87r0, Register_Relative_Position (SS, x87r1));
212
213
mRegisterMapping .insert (x87r1, " x87r1" );
213
214
mRegisterPlaces .insert (x87r1, Register_Position (offset++, 0 , 6 , 10 * 2 ));
215
+ mRegisterRelativePlaces .insert (x87r1, Register_Relative_Position (x87r0, x87r2));
214
216
mRegisterMapping .insert (x87r2, " x87r2" );
215
217
mRegisterPlaces .insert (x87r2, Register_Position (offset++, 0 , 6 , 10 * 2 ));
218
+ mRegisterRelativePlaces .insert (x87r2, Register_Relative_Position (x87r1, x87r3));
216
219
mRegisterMapping .insert (x87r3, " x87r3" );
217
220
mRegisterPlaces .insert (x87r3, Register_Position (offset++, 0 , 6 , 10 * 2 ));
221
+ mRegisterRelativePlaces .insert (x87r3, Register_Relative_Position (x87r2, x87r4));
218
222
mRegisterMapping .insert (x87r4, " x87r4" );
219
223
mRegisterPlaces .insert (x87r4, Register_Position (offset++, 0 , 6 , 10 * 2 ));
224
+ mRegisterRelativePlaces .insert (x87r4, Register_Relative_Position (x87r3, x87r5));
220
225
mRegisterMapping .insert (x87r5, " x87r5" );
221
226
mRegisterPlaces .insert (x87r5, Register_Position (offset++, 0 , 6 , 10 * 2 ));
227
+ mRegisterRelativePlaces .insert (x87r5, Register_Relative_Position (x87r4, x87r6));
222
228
mRegisterMapping .insert (x87r6, " x87r6" );
223
229
mRegisterPlaces .insert (x87r6, Register_Position (offset++, 0 , 6 , 10 * 2 ));
230
+ mRegisterRelativePlaces .insert (x87r6, Register_Relative_Position (x87r5, x87r7));
224
231
mRegisterMapping .insert (x87r7, " x87r7" );
225
232
mRegisterPlaces .insert (x87r7, Register_Position (offset++, 0 , 6 , 10 * 2 ));
233
+ mRegisterRelativePlaces .insert (x87r7, Register_Relative_Position (x87r6, x87TagWord));
234
+
226
235
}
227
236
else
228
237
{
229
238
mRegisterMapping .insert (x87st0, " ST(0)" );
230
239
mRegisterPlaces .insert (x87st0, Register_Position (offset++, 0 , 6 , 10 * 2 ));
240
+ mRegisterRelativePlaces .insert (x87st0, Register_Relative_Position (SS, x87st1));
231
241
mRegisterMapping .insert (x87st1, " ST(1)" );
232
242
mRegisterPlaces .insert (x87st1, Register_Position (offset++, 0 , 6 , 10 * 2 ));
243
+ mRegisterRelativePlaces .insert (x87st1, Register_Relative_Position (x87st0, x87st2));
233
244
mRegisterMapping .insert (x87st2, " ST(2)" );
234
245
mRegisterPlaces .insert (x87st2, Register_Position (offset++, 0 , 6 , 10 * 2 ));
246
+ mRegisterRelativePlaces .insert (x87st2, Register_Relative_Position (x87st1, x87st3));
235
247
mRegisterMapping .insert (x87st3, " ST(3)" );
236
248
mRegisterPlaces .insert (x87st3, Register_Position (offset++, 0 , 6 , 10 * 2 ));
249
+ mRegisterRelativePlaces .insert (x87st3, Register_Relative_Position (x87st2, x87st4));
237
250
mRegisterMapping .insert (x87st4, " ST(4)" );
238
251
mRegisterPlaces .insert (x87st4, Register_Position (offset++, 0 , 6 , 10 * 2 ));
252
+ mRegisterRelativePlaces .insert (x87st4, Register_Relative_Position (x87st3, x87st5));
239
253
mRegisterMapping .insert (x87st5, " ST(5)" );
240
254
mRegisterPlaces .insert (x87st5, Register_Position (offset++, 0 , 6 , 10 * 2 ));
255
+ mRegisterRelativePlaces .insert (x87st5, Register_Relative_Position (x87st4, x87st6));
241
256
mRegisterMapping .insert (x87st6, " ST(6)" );
242
257
mRegisterPlaces .insert (x87st6, Register_Position (offset++, 0 , 6 , 10 * 2 ));
258
+ mRegisterRelativePlaces .insert (x87st6, Register_Relative_Position (x87st5, x87st7));
243
259
mRegisterMapping .insert (x87st7, " ST(7)" );
244
260
mRegisterPlaces .insert (x87st7, Register_Position (offset++, 0 , 6 , 10 * 2 ));
261
+ mRegisterRelativePlaces .insert (x87st7, Register_Relative_Position (x87st6, x87TagWord));
262
+
245
263
}
246
264
247
265
offset++;
248
266
249
267
mRegisterMapping .insert (x87TagWord, " x87TagWord" );
250
268
mRegisterPlaces .insert (x87TagWord, Register_Position (offset++, 0 , 11 , sizeof (WORD) * 2 ));
269
+
270
+ if (mFpuMode )
271
+ {
272
+ mRegisterRelativePlaces .insert (x87TagWord, Register_Relative_Position (x87r7, x87TW_0));
273
+ }
274
+ else
275
+ {
276
+ mRegisterRelativePlaces .insert (x87TagWord, Register_Relative_Position (x87st7, x87TW_0));
277
+ }
278
+
279
+
251
280
// Special treatment of long internationalized string
252
281
int NextColumnPosition = 20 ;
253
282
int temp;
0 commit comments