@@ -107,7 +107,7 @@ class X86DynaRecCPU : public PCSX::R3000Acpu {
107
107
uint32_t m_pc; /* recompiler pc */
108
108
109
109
bool m_needsStackFrame;
110
- bool m_pcInEBX ;
110
+ bool m_pcInEBP ;
111
111
bool m_stopRecompile;
112
112
113
113
uint32_t m_functionPtr;
@@ -2373,12 +2373,12 @@ void X86DynaRecCPU::recSRAV() {
2373
2373
2374
2374
void X86DynaRecCPU::recSYSCALL () {
2375
2375
gen.MOV32ItoM ((uint32_t )&m_psxRegs.pc , (uint32_t )m_pc - 4 );
2376
- gen.MOV32ItoR (PCSX::ix86::EBX , 0xffffffff );
2376
+ gen.MOV32ItoR (PCSX::ix86::EBP , 0xffffffff );
2377
2377
gen.MOV32ItoM ((uint32_t )&m_arg2, m_inDelaySlot ? 1 : 0 );
2378
2378
gen.MOV32ItoM ((uint32_t )&m_arg1, 0x20 );
2379
2379
gen.MOV32ItoM ((uint32_t )&m_functionPtr, 0 );
2380
2380
2381
- m_pcInEBX = true ;
2381
+ m_pcInEBP = true ;
2382
2382
m_stopRecompile = true ;
2383
2383
}
2384
2384
@@ -2433,19 +2433,19 @@ void X86DynaRecCPU::recBLTZ() {
2433
2433
2434
2434
if (IsConst (_Rs_)) {
2435
2435
if ((int32_t )m_iRegs[_Rs_].k < 0 ) {
2436
- m_pcInEBX = true ;
2436
+ m_pcInEBP = true ;
2437
2437
m_stopRecompile = true ;
2438
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2438
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2439
2439
}
2440
2440
return ;
2441
2441
}
2442
2442
2443
- m_pcInEBX = true ;
2443
+ m_pcInEBP = true ;
2444
2444
m_stopRecompile = true ;
2445
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2445
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2446
2446
gen.CMP32ItoM ((uint32_t )&m_psxRegs.GPR .r [_Rs_], 0 );
2447
2447
unsigned slot = gen.JL32 (0 );
2448
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2448
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2449
2449
gen.x86SetJ32 (slot);
2450
2450
}
2451
2451
@@ -2458,19 +2458,19 @@ void X86DynaRecCPU::recBGTZ() {
2458
2458
2459
2459
if (IsConst (_Rs_)) {
2460
2460
if ((int32_t )m_iRegs[_Rs_].k > 0 ) {
2461
- m_pcInEBX = true ;
2461
+ m_pcInEBP = true ;
2462
2462
m_stopRecompile = true ;
2463
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2463
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2464
2464
}
2465
2465
return ;
2466
2466
}
2467
2467
2468
- m_pcInEBX = true ;
2468
+ m_pcInEBP = true ;
2469
2469
m_stopRecompile = true ;
2470
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2470
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2471
2471
gen.CMP32ItoM ((uint32_t )&m_psxRegs.GPR .r [_Rs_], 0 );
2472
2472
unsigned slot = gen.JG32 (0 );
2473
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2473
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2474
2474
gen.x86SetJ32 (slot);
2475
2475
}
2476
2476
@@ -2486,9 +2486,9 @@ void X86DynaRecCPU::recBLTZAL() {
2486
2486
delayedLoad.active = true ;
2487
2487
delayedLoad.index = 31 ;
2488
2488
gen.MOV32ItoR (PCSX::ix86::EDI, m_pc + 4 );
2489
- m_pcInEBX = true ;
2489
+ m_pcInEBP = true ;
2490
2490
m_stopRecompile = true ;
2491
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2491
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2492
2492
}
2493
2493
return ;
2494
2494
}
@@ -2499,13 +2499,13 @@ void X86DynaRecCPU::recBLTZAL() {
2499
2499
delayedLoad.active = true ;
2500
2500
delayedLoad.index = 31 ;
2501
2501
gen.MOV32MtoR (PCSX::ix86::EDI, (uint32_t )&m_psxRegs.GPR .n .ra );
2502
- m_pcInEBX = true ;
2502
+ m_pcInEBP = true ;
2503
2503
m_stopRecompile = true ;
2504
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2504
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2505
2505
gen.CMP32ItoM ((uint32_t )&m_psxRegs.GPR .r [_Rs_], 0 );
2506
2506
unsigned slot = gen.JGE32 (0 );
2507
2507
gen.MOV32ItoR (PCSX::ix86::EDI, m_pc + 4 );
2508
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2508
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2509
2509
gen.x86SetJ32 (slot);
2510
2510
}
2511
2511
@@ -2521,9 +2521,9 @@ void X86DynaRecCPU::recBGEZAL() {
2521
2521
delayedLoad.active = true ;
2522
2522
delayedLoad.index = 31 ;
2523
2523
gen.MOV32ItoR (PCSX::ix86::EDI, m_pc + 4 );
2524
- m_pcInEBX = true ;
2524
+ m_pcInEBP = true ;
2525
2525
m_stopRecompile = true ;
2526
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2526
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2527
2527
}
2528
2528
return ;
2529
2529
}
@@ -2534,13 +2534,13 @@ void X86DynaRecCPU::recBGEZAL() {
2534
2534
delayedLoad.active = true ;
2535
2535
delayedLoad.index = 31 ;
2536
2536
gen.MOV32MtoR (PCSX::ix86::EDI, (uint32_t )&m_psxRegs.GPR .n .ra );
2537
- m_pcInEBX = true ;
2537
+ m_pcInEBP = true ;
2538
2538
m_stopRecompile = true ;
2539
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2539
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2540
2540
gen.CMP32ItoM ((uint32_t )&m_psxRegs.GPR .r [_Rs_], 0 );
2541
2541
unsigned slot = gen.JL32 (0 );
2542
2542
gen.MOV32ItoR (PCSX::ix86::EDI, m_pc + 4 );
2543
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2543
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2544
2544
gen.x86SetJ32 (slot);
2545
2545
}
2546
2546
@@ -2549,8 +2549,8 @@ void X86DynaRecCPU::recJ() {
2549
2549
uint32_t target = _Target_ * 4 + (m_pc & 0xf0000000 );
2550
2550
m_nextIsDelaySlot = true ;
2551
2551
m_stopRecompile = true ;
2552
- m_pcInEBX = true ;
2553
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2552
+ m_pcInEBP = true ;
2553
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2554
2554
}
2555
2555
2556
2556
void X86DynaRecCPU::recJAL () {
@@ -2563,19 +2563,19 @@ void X86DynaRecCPU::recJAL() {
2563
2563
uint32_t target = _Target_ * 4 + (m_pc & 0xf0000000 );
2564
2564
m_nextIsDelaySlot = true ;
2565
2565
m_stopRecompile = true ;
2566
- m_pcInEBX = true ;
2567
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2566
+ m_pcInEBP = true ;
2567
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2568
2568
}
2569
2569
2570
2570
void X86DynaRecCPU::recJR () {
2571
2571
// jr Rs
2572
2572
m_nextIsDelaySlot = true ;
2573
2573
m_stopRecompile = true ;
2574
- m_pcInEBX = true ;
2574
+ m_pcInEBP = true ;
2575
2575
if (IsConst (_Rs_)) {
2576
- gen.MOV32ItoR (PCSX::ix86::EBX , m_iRegs[_Rs_].k );
2576
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_iRegs[_Rs_].k );
2577
2577
} else {
2578
- gen.MOV32MtoR (PCSX::ix86::EBX , (uint32_t )&m_psxRegs.GPR .r [_Rs_]);
2578
+ gen.MOV32MtoR (PCSX::ix86::EBP , (uint32_t )&m_psxRegs.GPR .r [_Rs_]);
2579
2579
}
2580
2580
}
2581
2581
@@ -2588,11 +2588,11 @@ void X86DynaRecCPU::recJALR() {
2588
2588
gen.MOV32ItoR (PCSX::ix86::EDI, m_pc + 4 );
2589
2589
m_nextIsDelaySlot = true ;
2590
2590
m_stopRecompile = true ;
2591
- m_pcInEBX = true ;
2591
+ m_pcInEBP = true ;
2592
2592
if (IsConst (_Rs_)) {
2593
- gen.MOV32ItoR (PCSX::ix86::EBX , m_iRegs[_Rs_].k );
2593
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_iRegs[_Rs_].k );
2594
2594
} else {
2595
- gen.MOV32MtoR (PCSX::ix86::EBX , (uint32_t )&m_psxRegs.GPR .r [_Rs_]);
2595
+ gen.MOV32MtoR (PCSX::ix86::EBP , (uint32_t )&m_psxRegs.GPR .r [_Rs_]);
2596
2596
}
2597
2597
}
2598
2598
@@ -2605,9 +2605,9 @@ void X86DynaRecCPU::recBEQ() {
2605
2605
2606
2606
if (IsConst (_Rs_) && IsConst (_Rt_)) {
2607
2607
if (m_iRegs[_Rs_].k == m_iRegs[_Rt_].k ) {
2608
- m_pcInEBX = true ;
2608
+ m_pcInEBP = true ;
2609
2609
m_stopRecompile = true ;
2610
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2610
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2611
2611
}
2612
2612
return ;
2613
2613
} else if (IsConst (_Rs_)) {
@@ -2618,11 +2618,11 @@ void X86DynaRecCPU::recBEQ() {
2618
2618
gen.MOV32MtoR (PCSX::ix86::EAX, (uint32_t )&m_psxRegs.GPR .r [_Rs_]);
2619
2619
gen.CMP32MtoR (PCSX::ix86::EAX, (uint32_t )&m_psxRegs.GPR .r [_Rt_]);
2620
2620
}
2621
- m_pcInEBX = true ;
2621
+ m_pcInEBP = true ;
2622
2622
m_stopRecompile = true ;
2623
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2623
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2624
2624
unsigned slot = gen.JE32 (0 );
2625
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2625
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2626
2626
gen.x86SetJ32 (slot);
2627
2627
}
2628
2628
@@ -2635,9 +2635,9 @@ void X86DynaRecCPU::recBNE() {
2635
2635
2636
2636
if (IsConst (_Rs_) && IsConst (_Rt_)) {
2637
2637
if (m_iRegs[_Rs_].k != m_iRegs[_Rt_].k ) {
2638
- m_pcInEBX = true ;
2638
+ m_pcInEBP = true ;
2639
2639
m_stopRecompile = true ;
2640
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2640
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2641
2641
}
2642
2642
return ;
2643
2643
} else if (IsConst (_Rs_)) {
@@ -2648,11 +2648,11 @@ void X86DynaRecCPU::recBNE() {
2648
2648
gen.MOV32MtoR (PCSX::ix86::EAX, (uint32_t )&m_psxRegs.GPR .r [_Rs_]);
2649
2649
gen.CMP32MtoR (PCSX::ix86::EAX, (uint32_t )&m_psxRegs.GPR .r [_Rt_]);
2650
2650
}
2651
- m_pcInEBX = true ;
2651
+ m_pcInEBP = true ;
2652
2652
m_stopRecompile = true ;
2653
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2653
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2654
2654
unsigned slot = gen.JNE32 (0 );
2655
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2655
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2656
2656
gen.x86SetJ32 (slot);
2657
2657
}
2658
2658
@@ -2665,19 +2665,19 @@ void X86DynaRecCPU::recBLEZ() {
2665
2665
2666
2666
if (IsConst (_Rs_)) {
2667
2667
if ((int32_t )m_iRegs[_Rs_].k <= 0 ) {
2668
- m_pcInEBX = true ;
2668
+ m_pcInEBP = true ;
2669
2669
m_stopRecompile = true ;
2670
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2670
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2671
2671
}
2672
2672
return ;
2673
2673
}
2674
2674
2675
- m_pcInEBX = true ;
2675
+ m_pcInEBP = true ;
2676
2676
m_stopRecompile = true ;
2677
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2677
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2678
2678
gen.CMP32ItoM ((uint32_t )&m_psxRegs.GPR .r [_Rs_], 0 );
2679
2679
unsigned slot = gen.JLE32 (0 );
2680
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2680
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2681
2681
gen.x86SetJ32 (slot);
2682
2682
}
2683
2683
@@ -2690,19 +2690,19 @@ void X86DynaRecCPU::recBGEZ() {
2690
2690
2691
2691
if (IsConst (_Rs_)) {
2692
2692
if ((int32_t )m_iRegs[_Rs_].k >= 0 ) {
2693
- m_pcInEBX = true ;
2693
+ m_pcInEBP = true ;
2694
2694
m_stopRecompile = true ;
2695
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2695
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2696
2696
}
2697
2697
return ;
2698
2698
}
2699
2699
2700
- m_pcInEBX = true ;
2700
+ m_pcInEBP = true ;
2701
2701
m_stopRecompile = true ;
2702
- gen.MOV32ItoR (PCSX::ix86::EBX , target);
2702
+ gen.MOV32ItoR (PCSX::ix86::EBP , target);
2703
2703
gen.CMP32ItoM ((uint32_t )&m_psxRegs.GPR .r [_Rs_], 0 );
2704
2704
unsigned slot = gen.JGE32 (0 );
2705
- gen.MOV32ItoR (PCSX::ix86::EBX , m_pc + 4 );
2705
+ gen.MOV32ItoR (PCSX::ix86::EBP , m_pc + 4 );
2706
2706
gen.x86SetJ32 (slot);
2707
2707
}
2708
2708
@@ -2722,9 +2722,9 @@ void X86DynaRecCPU::recCFC0() {
2722
2722
}
2723
2723
2724
2724
void X86DynaRecCPU::testSWInt () {
2725
- if (!m_pcInEBX ) gen.MOV32ItoR (PCSX::ix86::EBX , (uint32_t )m_pc);
2725
+ if (!m_pcInEBP ) gen.MOV32ItoR (PCSX::ix86::EBP , (uint32_t )m_pc);
2726
2726
2727
- m_pcInEBX = true ;
2727
+ m_pcInEBP = true ;
2728
2728
m_stopRecompile = true ;
2729
2729
2730
2730
gen.MOV32MtoR (PCSX::ix86::EDX, (uint32_t )&m_psxRegs.CP0 .n .Cause );
@@ -2740,8 +2740,8 @@ void X86DynaRecCPU::testSWInt() {
2740
2740
gen.MOV32ItoM ((uint32_t )&m_functionPtr, 0 );
2741
2741
gen.MOV32RtoM ((uint32_t )&m_arg1, PCSX::ix86::EDX);
2742
2742
gen.MOV32ItoM ((uint32_t )&m_arg2, m_inDelaySlot);
2743
- gen.MOV32RtoM ((uint32_t )&m_psxRegs.pc , PCSX::ix86::EBX );
2744
- gen.MOV32ItoR (PCSX::ix86::EBX , 0xffffffff );
2743
+ gen.MOV32RtoM ((uint32_t )&m_psxRegs.pc , PCSX::ix86::EBP );
2744
+ gen.MOV32ItoR (PCSX::ix86::EBP , 0xffffffff );
2745
2745
gen.x86SetJ8 (slot1);
2746
2746
gen.x86SetJ8 (slot2);
2747
2747
}
@@ -2788,15 +2788,15 @@ void X86DynaRecCPU::recHLE() {
2788
2788
if (hleCode >= (sizeof (psxHLEt) / sizeof (psxHLEt[0 ]))) {
2789
2789
recNULL ();
2790
2790
} else {
2791
- if (m_pcInEBX ) {
2792
- gen.MOV32RtoM ((uint32_t )&m_psxRegs.pc , PCSX::ix86::EBX );
2791
+ if (m_pcInEBP ) {
2792
+ gen.MOV32RtoM ((uint32_t )&m_psxRegs.pc , PCSX::ix86::EBP );
2793
2793
} else {
2794
2794
gen.MOV32ItoM ((uint32_t )&m_psxRegs.pc , (uint32_t )m_pc);
2795
2795
}
2796
- gen.MOV32ItoR (PCSX::ix86::EBX , 0xffffffff );
2796
+ gen.MOV32ItoR (PCSX::ix86::EBP , 0xffffffff );
2797
2797
gen.MOV32ItoM ((uint32_t )&m_functionPtr, (uint32_t )psxHLEt[hleCode]);
2798
2798
2799
- m_pcInEBX = true ;
2799
+ m_pcInEBP = true ;
2800
2800
m_stopRecompile = true ;
2801
2801
}
2802
2802
}
@@ -3051,7 +3051,7 @@ void X86DynaRecCPU::recRecompile() {
3051
3051
int8_t *startPtr = gen.x86GetPtr ();
3052
3052
(*(uint32_t *)PC_REC (m_pc)) = (uint32_t )startPtr;
3053
3053
m_needsStackFrame = false ;
3054
- m_pcInEBX = false ;
3054
+ m_pcInEBP = false ;
3055
3055
m_nextIsDelaySlot = false ;
3056
3056
m_inDelaySlot = false ;
3057
3057
m_stopRecompile = false ;
@@ -3060,7 +3060,6 @@ void X86DynaRecCPU::recRecompile() {
3060
3060
m_delayedLoadInfo[1 ].active = false ;
3061
3061
unsigned count = 0 ;
3062
3062
gen.PUSH32R (PCSX::ix86::EBP);
3063
- gen.MOV32RtoR (PCSX::ix86::EBP, PCSX::ix86::ESP);
3064
3063
gen.PUSH32R (PCSX::ix86::EBX);
3065
3064
gen.PUSH32R (PCSX::ix86::ESI);
3066
3065
gen.PUSH32R (PCSX::ix86::EDI);
@@ -3112,13 +3111,13 @@ void X86DynaRecCPU::recRecompile() {
3112
3111
count = ((m_pc - old_pc) / 4 ) * PCSX::Emulator::BIAS;
3113
3112
gen.ADD32ItoM ((uint32_t )&m_psxRegs.cycle , count);
3114
3113
3115
- if (m_pcInEBX ) {
3116
- gen.MOV32RtoR (PCSX::ix86::EAX, PCSX::ix86::EBX );
3114
+ if (m_pcInEBP ) {
3115
+ gen.MOV32RtoR (PCSX::ix86::EAX, PCSX::ix86::EBP );
3117
3116
} else {
3118
3117
gen.MOV32ItoR (PCSX::ix86::EAX, m_pc);
3119
3118
}
3120
3119
3121
- if (m_needsStackFrame || m_pcInEBX ) {
3120
+ if (m_needsStackFrame || m_pcInEBP ) {
3122
3121
gen.POP32R (PCSX::ix86::EDI);
3123
3122
gen.POP32R (PCSX::ix86::ESI);
3124
3123
gen.POP32R (PCSX::ix86::EBX);
0 commit comments