Skip to content

Commit 9d1c72f

Browse files
dl471mrexodia
authored andcommitted
Arrow key movements for middle group of FPU registers
1 parent c669c34 commit 9d1c72f

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

src/gui/Src/Gui/RegistersView.cpp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,127 +292,178 @@ void RegistersView::InitMappings()
292292
NextColumnPosition = std::max(NextColumnPosition, temp);
293293
mRegisterMapping.insert(x87TW_0, "x87TW_0");
294294
mRegisterPlaces.insert(x87TW_0, Register_Position(offset, 0, 8, 10));
295+
mRegisterRelativePlaces.insert(x87TW_0, Register_Relative_Position(x87TagWord, x87TW_1, x87TagWord, x87TW_2));
295296
mRegisterMapping.insert(x87TW_1, "x87TW_1");
296297
mRegisterPlaces.insert(x87TW_1, Register_Position(offset++, NextColumnPosition, 8, 10));
298+
mRegisterRelativePlaces.insert(x87TW_1, Register_Relative_Position(x87TW_0, x87TW_2, x87TagWord, x87TW_3));
297299

298300
mRegisterMapping.insert(x87TW_2, "x87TW_2");
299301
mRegisterPlaces.insert(x87TW_2, Register_Position(offset, 0, 8, 10));
302+
mRegisterRelativePlaces.insert(x87TW_2, Register_Relative_Position(x87TW_1, x87TW_3, x87TW_0, x87TW_4));
300303
mRegisterMapping.insert(x87TW_3, "x87TW_3");
301304
mRegisterPlaces.insert(x87TW_3, Register_Position(offset++, NextColumnPosition, 8, 10));
305+
mRegisterRelativePlaces.insert(x87TW_3, Register_Relative_Position(x87TW_2, x87TW_4, x87TW_1, x87TW_5));
302306

303307
mRegisterMapping.insert(x87TW_4, "x87TW_4");
304308
mRegisterPlaces.insert(x87TW_4, Register_Position(offset, 0, 8, 10));
309+
mRegisterRelativePlaces.insert(x87TW_4, Register_Relative_Position(x87TW_3, x87TW_5, x87TW_2, x87TW_6));
305310
mRegisterMapping.insert(x87TW_5, "x87TW_5");
306311
mRegisterPlaces.insert(x87TW_5, Register_Position(offset++, NextColumnPosition, 8, 10));
312+
mRegisterRelativePlaces.insert(x87TW_5, Register_Relative_Position(x87TW_4, x87TW_6, x87TW_3, x87TW_7));
307313

308314
mRegisterMapping.insert(x87TW_6, "x87TW_6");
309315
mRegisterPlaces.insert(x87TW_6, Register_Position(offset, 0, 8, 10));
316+
mRegisterRelativePlaces.insert(x87TW_6, Register_Relative_Position(x87TW_5, x87TW_7, x87TW_4, x87StatusWord));
310317
mRegisterMapping.insert(x87TW_7, "x87TW_7");
311318
mRegisterPlaces.insert(x87TW_7, Register_Position(offset++, NextColumnPosition, 8, 10));
319+
mRegisterRelativePlaces.insert(x87TW_7, Register_Relative_Position(x87TW_6, x87StatusWord, x87TW_5, x87StatusWord));
320+
312321

313322
offset++;
314323

315324
mRegisterMapping.insert(x87StatusWord, "x87StatusWord");
316325
mRegisterPlaces.insert(x87StatusWord, Register_Position(offset++, 0, 14, sizeof(WORD) * 2));
326+
mRegisterRelativePlaces.insert(x87StatusWord, Register_Relative_Position(x87TW_7, x87SW_B));
317327

318328
mRegisterMapping.insert(x87SW_B, "x87SW_B");
319329
mRegisterPlaces.insert(x87SW_B, Register_Position(offset, 0, 9, 1));
330+
mRegisterRelativePlaces.insert(x87SW_B, Register_Relative_Position(x87StatusWord, x87SW_C3, x87StatusWord, x87SW_C1));
320331
mRegisterMapping.insert(x87SW_C3, "x87SW_C3");
321332
mRegisterPlaces.insert(x87SW_C3, Register_Position(offset, 12, 10, 1));
333+
mRegisterRelativePlaces.insert(x87SW_C3, Register_Relative_Position(x87SW_B, x87SW_C2, x87StatusWord, x87SW_C0));
322334
mRegisterMapping.insert(x87SW_C2, "x87SW_C2");
323335
mRegisterPlaces.insert(x87SW_C2, Register_Position(offset++, 25, 10, 1));
336+
mRegisterRelativePlaces.insert(x87SW_C2, Register_Relative_Position(x87SW_C3, x87SW_C1, x87StatusWord, x87SW_ES));
324337

325338
mRegisterMapping.insert(x87SW_C1, "x87SW_C1");
326339
mRegisterPlaces.insert(x87SW_C1, Register_Position(offset, 0, 9, 1));
340+
mRegisterRelativePlaces.insert(x87SW_C1, Register_Relative_Position(x87SW_C2, x87SW_C0, x87SW_B, x87SW_SF));
327341
mRegisterMapping.insert(x87SW_C0, "x87SW_C0");
328342
mRegisterPlaces.insert(x87SW_C0, Register_Position(offset, 12, 10, 1));
343+
mRegisterRelativePlaces.insert(x87SW_C0, Register_Relative_Position(x87SW_C1, x87SW_ES, x87SW_C3, x87SW_P));
329344
mRegisterMapping.insert(x87SW_ES, "x87SW_ES");
330345
mRegisterPlaces.insert(x87SW_ES, Register_Position(offset++, 25, 10, 1));
346+
mRegisterRelativePlaces.insert(x87SW_ES, Register_Relative_Position(x87SW_C0, x87SW_SF, x87SW_C2, x87SW_U));
331347

332348
mRegisterMapping.insert(x87SW_SF, "x87SW_SF");
333349
mRegisterPlaces.insert(x87SW_SF, Register_Position(offset, 0, 9, 1));
350+
mRegisterRelativePlaces.insert(x87SW_SF, Register_Relative_Position(x87SW_ES, x87SW_P, x87SW_C1, x87SW_O));
334351
mRegisterMapping.insert(x87SW_P, "x87SW_P");
335352
mRegisterPlaces.insert(x87SW_P, Register_Position(offset, 12, 10, 1));
353+
mRegisterRelativePlaces.insert(x87SW_P, Register_Relative_Position(x87SW_SF, x87SW_U, x87SW_C0, x87SW_Z));
336354
mRegisterMapping.insert(x87SW_U, "x87SW_U");
337355
mRegisterPlaces.insert(x87SW_U, Register_Position(offset++, 25, 10, 1));
356+
mRegisterRelativePlaces.insert(x87SW_U, Register_Relative_Position(x87SW_P, x87SW_O, x87SW_ES, x87SW_D));
338357

339358
mRegisterMapping.insert(x87SW_O, "x87SW_O");
340359
mRegisterPlaces.insert(x87SW_O, Register_Position(offset, 0, 9, 1));
360+
mRegisterRelativePlaces.insert(x87SW_O, Register_Relative_Position(x87SW_U, x87SW_Z, x87SW_SF, x87SW_I));
341361
mRegisterMapping.insert(x87SW_Z, "x87SW_Z");
342362
mRegisterPlaces.insert(x87SW_Z, Register_Position(offset, 12, 10, 1));
363+
mRegisterRelativePlaces.insert(x87SW_Z, Register_Relative_Position(x87SW_O, x87SW_D, x87SW_P, x87SW_TOP));
343364
mRegisterMapping.insert(x87SW_D, "x87SW_D");
344365
mRegisterPlaces.insert(x87SW_D, Register_Position(offset++, 25, 10, 1));
366+
mRegisterRelativePlaces.insert(x87SW_D, Register_Relative_Position(x87SW_Z, x87SW_I, x87SW_U, x87SW_TOP));
345367

346368
mRegisterMapping.insert(x87SW_I, "x87SW_I");
347369
mRegisterPlaces.insert(x87SW_I, Register_Position(offset, 0, 9, 1));
370+
mRegisterRelativePlaces.insert(x87SW_I, Register_Relative_Position(x87SW_D, x87SW_TOP, x87SW_O, x87ControlWord));
348371
mRegisterMapping.insert(x87SW_TOP, "x87SW_TOP");
349372
mRegisterPlaces.insert(x87SW_TOP, Register_Position(offset++, 12, 10, 13));
373+
mRegisterRelativePlaces.insert(x87SW_TOP, Register_Relative_Position(x87SW_I, x87ControlWord, x87SW_Z, x87ControlWord));
350374

351375
offset++;
352376

353377
mRegisterMapping.insert(x87ControlWord, "x87ControlWord");
354378
mRegisterPlaces.insert(x87ControlWord, Register_Position(offset++, 0, 15, sizeof(WORD) * 2));
379+
mRegisterRelativePlaces.insert(x87ControlWord, Register_Relative_Position(x87SW_TOP, x87CW_IC));
355380

356381
mRegisterMapping.insert(x87CW_IC, "x87CW_IC");
357382
mRegisterPlaces.insert(x87CW_IC, Register_Position(offset, 0, 9, 1));
383+
mRegisterRelativePlaces.insert(x87CW_IC, Register_Relative_Position(x87ControlWord, x87CW_ZM, x87ControlWord, x87CW_UM));
358384
mRegisterMapping.insert(x87CW_ZM, "x87CW_ZM");
359385
mRegisterPlaces.insert(x87CW_ZM, Register_Position(offset, 12, 10, 1));
386+
mRegisterRelativePlaces.insert(x87CW_ZM, Register_Relative_Position(x87CW_IC, x87CW_PM, x87ControlWord, x87CW_OM));
360387
mRegisterMapping.insert(x87CW_PM, "x87CW_PM");
361388
mRegisterPlaces.insert(x87CW_PM, Register_Position(offset++, 25, 10, 1));
389+
mRegisterRelativePlaces.insert(x87CW_PM, Register_Relative_Position(x87CW_ZM, x87CW_UM, x87ControlWord, x87CW_PC));
362390

363391
mRegisterMapping.insert(x87CW_UM, "x87CW_UM");
364392
mRegisterPlaces.insert(x87CW_UM, Register_Position(offset, 0, 9, 1));
393+
mRegisterRelativePlaces.insert(x87CW_UM, Register_Relative_Position(x87CW_PM, x87CW_OM, x87CW_IC, x87CW_DM));
365394
mRegisterMapping.insert(x87CW_OM, "x87CW_OM");
366395
mRegisterPlaces.insert(x87CW_OM, Register_Position(offset, 12, 10, 1));
396+
mRegisterRelativePlaces.insert(x87CW_OM, Register_Relative_Position(x87CW_UM, x87CW_PC, x87CW_ZM, x87CW_IM));
367397
mRegisterMapping.insert(x87CW_PC, "x87CW_PC");
368398
mRegisterPlaces.insert(x87CW_PC, Register_Position(offset++, 25, 10, 14));
399+
mRegisterRelativePlaces.insert(x87CW_PC, Register_Relative_Position(x87CW_OM, x87CW_DM, x87CW_PM, x87CW_RC));
369400

370401
mRegisterMapping.insert(x87CW_DM, "x87CW_DM");
371402
mRegisterPlaces.insert(x87CW_DM, Register_Position(offset, 0, 9, 1));
403+
mRegisterRelativePlaces.insert(x87CW_DM, Register_Relative_Position(x87CW_PC, x87CW_IM, x87CW_UM, MxCsr));
372404
mRegisterMapping.insert(x87CW_IM, "x87CW_IM");
373405
mRegisterPlaces.insert(x87CW_IM, Register_Position(offset, 12, 10, 1));
406+
mRegisterRelativePlaces.insert(x87CW_IM, Register_Relative_Position(x87CW_DM, x87CW_RC, x87CW_OM, MxCsr));
374407
mRegisterMapping.insert(x87CW_RC, "x87CW_RC");
375408
mRegisterPlaces.insert(x87CW_RC, Register_Position(offset++, 25, 10, 14));
409+
mRegisterRelativePlaces.insert(x87CW_RC, Register_Relative_Position(x87CW_IM, MxCsr, x87CW_PC, MxCsr));
376410

377411
offset++;
378412

379413
mRegisterMapping.insert(MxCsr, "MxCsr");
380414
mRegisterPlaces.insert(MxCsr, Register_Position(offset++, 0, 6, sizeof(DWORD) * 2));
415+
mRegisterRelativePlaces.insert(MxCsr, Register_Relative_Position(x87CW_RC, MxCsr_FZ));
381416

382417
mRegisterMapping.insert(MxCsr_FZ, "MxCsr_FZ");
383418
mRegisterPlaces.insert(MxCsr_FZ, Register_Position(offset, 0, 9, 1));
419+
mRegisterRelativePlaces.insert(MxCsr_FZ, Register_Relative_Position(MxCsr, MxCsr_PM, MxCsr, MxCsr_OM));
384420
mRegisterMapping.insert(MxCsr_PM, "MxCsr_PM");
385421
mRegisterPlaces.insert(MxCsr_PM, Register_Position(offset, 12, 10, 1));
422+
mRegisterRelativePlaces.insert(MxCsr_PM, Register_Relative_Position(MxCsr_FZ, MxCsr_UM, MxCsr, MxCsr_ZM));
386423
mRegisterMapping.insert(MxCsr_UM, "MxCsr_UM");
387424
mRegisterPlaces.insert(MxCsr_UM, Register_Position(offset++, 25, 10, 1));
425+
mRegisterRelativePlaces.insert(MxCsr_UM, Register_Relative_Position(MxCsr_PM, MxCsr_OM, MxCsr, MxCsr_IM));
388426

389427
mRegisterMapping.insert(MxCsr_OM, "MxCsr_OM");
390428
mRegisterPlaces.insert(MxCsr_OM, Register_Position(offset, 0, 9, 1));
429+
mRegisterRelativePlaces.insert(MxCsr_OM, Register_Relative_Position(MxCsr_UM, MxCsr_ZM, MxCsr_FZ, MxCsr_UE));
391430
mRegisterMapping.insert(MxCsr_ZM, "MxCsr_ZM");
392431
mRegisterPlaces.insert(MxCsr_ZM, Register_Position(offset, 12, 10, 1));
432+
mRegisterRelativePlaces.insert(MxCsr_ZM, Register_Relative_Position(MxCsr_OM, MxCsr_IM, MxCsr_PM, MxCsr_PE));
393433
mRegisterMapping.insert(MxCsr_IM, "MxCsr_IM");
394434
mRegisterPlaces.insert(MxCsr_IM, Register_Position(offset++, 25, 10, 1));
435+
mRegisterRelativePlaces.insert(MxCsr_IM, Register_Relative_Position(MxCsr_ZM, MxCsr_UE, MxCsr_UM, MxCsr_DAZ));
395436

396437
mRegisterMapping.insert(MxCsr_UE, "MxCsr_UE");
397438
mRegisterPlaces.insert(MxCsr_UE, Register_Position(offset, 0, 9, 1));
439+
mRegisterRelativePlaces.insert(MxCsr_UE, Register_Relative_Position(MxCsr_IM, MxCsr_PE, MxCsr_OM, MxCsr_OE));
398440
mRegisterMapping.insert(MxCsr_PE, "MxCsr_PE");
399441
mRegisterPlaces.insert(MxCsr_PE, Register_Position(offset, 12, 10, 1));
442+
mRegisterRelativePlaces.insert(MxCsr_PE, Register_Relative_Position(MxCsr_UE, MxCsr_DAZ, MxCsr_ZM, MxCsr_ZE));
400443
mRegisterMapping.insert(MxCsr_DAZ, "MxCsr_DAZ");
401444
mRegisterPlaces.insert(MxCsr_DAZ, Register_Position(offset++, 25, 10, 1));
445+
mRegisterRelativePlaces.insert(MxCsr_DAZ, Register_Relative_Position(MxCsr_PE, MxCsr_OE, MxCsr_IM, MxCsr_DE));
402446

403447
mRegisterMapping.insert(MxCsr_OE, "MxCsr_OE");
404448
mRegisterPlaces.insert(MxCsr_OE, Register_Position(offset, 0, 9, 1));
449+
mRegisterRelativePlaces.insert(MxCsr_OE, Register_Relative_Position(MxCsr_DAZ, MxCsr_ZE, MxCsr_UE, MxCsr_IE));
405450
mRegisterMapping.insert(MxCsr_ZE, "MxCsr_ZE");
406451
mRegisterPlaces.insert(MxCsr_ZE, Register_Position(offset, 12, 10, 1));
452+
mRegisterRelativePlaces.insert(MxCsr_ZE, Register_Relative_Position(MxCsr_OE, MxCsr_DE, MxCsr_PE, MxCsr_DM));
407453
mRegisterMapping.insert(MxCsr_DE, "MxCsr_DE");
408454
mRegisterPlaces.insert(MxCsr_DE, Register_Position(offset++, 25, 10, 1));
455+
mRegisterRelativePlaces.insert(MxCsr_DE, Register_Relative_Position(MxCsr_ZE, MxCsr_IE, MxCsr_DAZ, MxCsr_RC));
409456

410457
mRegisterMapping.insert(MxCsr_IE, "MxCsr_IE");
411458
mRegisterPlaces.insert(MxCsr_IE, Register_Position(offset, 0, 9, 1));
459+
mRegisterRelativePlaces.insert(MxCsr_IE, Register_Relative_Position(MxCsr_DE, MxCsr_DM, MxCsr_OE, MM0));
412460
mRegisterMapping.insert(MxCsr_DM, "MxCsr_DM");
413461
mRegisterPlaces.insert(MxCsr_DM, Register_Position(offset, 12, 10, 1));
462+
mRegisterRelativePlaces.insert(MxCsr_DM, Register_Relative_Position(MxCsr_IE, MxCsr_RC, MxCsr_ZE, MM0));
414463
mRegisterMapping.insert(MxCsr_RC, "MxCsr_RC");
415464
mRegisterPlaces.insert(MxCsr_RC, Register_Position(offset++, 25, 10, 19));
465+
mRegisterRelativePlaces.insert(MxCsr_RC, Register_Relative_Position(MxCsr_DM, MM0, MxCsr_DE, MM0));
466+
416467

417468
offset++;
418469

0 commit comments

Comments
 (0)