@@ -1687,42 +1687,40 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
1687
1687
1688
1688
case 0xAE :
1689
1689
nextop = F8 ;
1690
- if ((nextop & 0xF8 )== 0xE8 ) {
1691
- INST_NAME ("LFENCE" );
1692
- SMDMB ();
1693
- } else
1694
- if ((nextop & 0xF8 )== 0xF0 ) {
1695
- INST_NAME ("MFENCE" );
1696
- SMDMB ();
1697
- } else
1698
- if ((nextop & 0xF8 )== 0xF8 ) {
1699
- INST_NAME ("SFENCE" );
1700
- SMDMB ();
1701
- } else {
1690
+ if (MODREG )
1691
+ switch (nextop ) {
1692
+ case 0xE8 :
1693
+ INST_NAME ("LFENCE" );
1694
+ SMDMB ();
1695
+ break ;
1696
+ case 0xF0 :
1697
+ INST_NAME ("MFENCE" );
1698
+ SMDMB ();
1699
+ break ;
1700
+ case 0xF8 :
1701
+ INST_NAME ("SFENCE" );
1702
+ SMDMB ();
1703
+ break ;
1704
+ default :
1705
+ DEFAULT ;
1706
+ }
1707
+ else
1702
1708
switch ((nextop >>3 )& 7 ) {
1703
1709
case 0 :
1704
1710
INST_NAME ("FXSAVE Ed" );
1705
1711
MESSAGE (LOG_DUMP , "Need Optimization\n" );
1706
1712
fpu_purgecache (dyn , ninst , 0 , x1 , x2 , x3 );
1707
- if (MODREG ) {
1708
- DEFAULT ;
1709
- } else {
1710
- addr = geted (dyn , addr , ninst , nextop , & ed , x1 , & fixedaddress , NULL , 0 , 0 , rex , NULL , 0 , 0 );
1711
- if (ed != x1 ) {MOVx_REG (x1 , ed );}
1712
- CALL (rex .w ?((void * )fpu_fxsave64 ):((void * )fpu_fxsave32 ), -1 );
1713
- }
1713
+ addr = geted (dyn , addr , ninst , nextop , & ed , x1 , & fixedaddress , NULL , 0 , 0 , rex , NULL , 0 , 0 );
1714
+ if (ed != x1 ) {MOVx_REG (x1 , ed );}
1715
+ CALL (rex .w ?((void * )fpu_fxsave64 ):((void * )fpu_fxsave32 ), -1 );
1714
1716
break ;
1715
1717
case 1 :
1716
1718
INST_NAME ("FXRSTOR Ed" );
1717
1719
MESSAGE (LOG_DUMP , "Need Optimization\n" );
1718
1720
fpu_purgecache (dyn , ninst , 0 , x1 , x2 , x3 );
1719
- if (MODREG ) {
1720
- DEFAULT ;
1721
- } else {
1722
- addr = geted (dyn , addr , ninst , nextop , & ed , x1 , & fixedaddress , NULL , 0 , 0 , rex , NULL , 0 , 0 );
1723
- if (ed != x1 ) {MOVx_REG (x1 , ed );}
1724
- CALL (rex .w ?((void * )fpu_fxrstor64 ):((void * )fpu_fxrstor32 ), -1 );
1725
- }
1721
+ addr = geted (dyn , addr , ninst , nextop , & ed , x1 , & fixedaddress , NULL , 0 , 0 , rex , NULL , 0 , 0 );
1722
+ if (ed != x1 ) {MOVx_REG (x1 , ed );}
1723
+ CALL (rex .w ?((void * )fpu_fxrstor64 ):((void * )fpu_fxrstor32 ), -1 );
1726
1724
break ;
1727
1725
case 2 :
1728
1726
INST_NAME ("LDMXCSR Md" );
@@ -1755,7 +1753,6 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
1755
1753
default :
1756
1754
DEFAULT ;
1757
1755
}
1758
- }
1759
1756
break ;
1760
1757
case 0xAF :
1761
1758
INST_NAME ("IMUL Gd, Ed" );
0 commit comments