@ -216,8 +216,6 @@ static void update_itlb_use(CPUSH4State * env, int itlbnb)
static int itlb_replacement ( CPUSH4State * env )
{
SuperHCPU * cpu = sh_env_get_cpu ( env ) ;
if ( ( env - > mmucr & 0xe0000000 ) = = 0xe0000000 ) {
return 0 ;
}
@ -230,7 +228,7 @@ static int itlb_replacement(CPUSH4State * env)
if ( ( env - > mmucr & 0x2c000000 ) = = 0x00000000 ) {
return 3 ;
}
cpu_abort ( CPU ( cpu ) , " Unhandled itlb_replacement " ) ;
cpu_abort ( env_cpu ( env ) , " Unhandled itlb_replacement " ) ;
}
/* Find the corresponding entry in the right TLB
@ -286,7 +284,7 @@ static int copy_utlb_entry_itlb(CPUSH4State *env, int utlb)
itlb = itlb_replacement ( env ) ;
ientry = & env - > itlb [ itlb ] ;
if ( ientry - > v ) {
tlb_flush_page ( CPU ( sh_ env_get _cpu( env ) ) , ientry - > vpn < < 10 ) ;
tlb_flush_page ( env_cpu ( env ) , ientry - > vpn < < 10 ) ;
}
* ientry = env - > utlb [ utlb ] ;
update_itlb_use ( env , itlb ) ;
@ -448,14 +446,14 @@ hwaddr superh_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
void cpu_load_tlb ( CPUSH4State * env )
{
SuperHCPU * cpu = sh_env_get _cpu( env ) ;
CPUState * cs = env _cpu( env ) ;
int n = cpu_mmucr_urc ( env - > mmucr ) ;
tlb_t * entry = & env - > utlb [ n ] ;
if ( entry - > v ) {
/* Overwriting valid entry in utlb. */
target_ulong address = entry - > vpn < < 10 ;
tlb_flush_page ( CPU ( cpu ) , address ) ;
tlb_flush_page ( cs , address ) ;
}
/* Take values into cpu status from registers. */
@ -478,7 +476,7 @@ void cpu_load_tlb(CPUSH4State * env)
entry - > size = 1024 * 1024 ; /* 1M */
break ;
default :
cpu_abort ( CPU ( cpu ) , " Unhandled load_tlb " ) ;
cpu_abort ( cs , " Unhandled load_tlb " ) ;
break ;
}
entry - > sh = ( uint8_t ) cpu_ptel_sh ( env - > ptel ) ;
@ -505,7 +503,7 @@ void cpu_load_tlb(CPUSH4State * env)
entry - > v = 0 ;
}
tlb_flush ( CPU ( sh_ env_get _cpu( s ) ) ) ;
tlb_flush ( env_cpu ( s ) ) ;
}
uint32_t cpu_sh4_read_mmaped_itlb_addr ( CPUSH4State * s ,
@ -531,7 +529,7 @@ void cpu_sh4_write_mmaped_itlb_addr(CPUSH4State *s, hwaddr addr,
if ( entry - > v ) {
/* Overwriting valid entry in itlb. */
target_ulong address = entry - > vpn < < 10 ;
tlb_flush_page ( CPU ( sh_ env_get _cpu( s ) ) , address ) ;
tlb_flush_page ( env_cpu ( s ) , address ) ;
}
entry - > asid = asid ;
entry - > vpn = vpn ;
@ -573,7 +571,7 @@ void cpu_sh4_write_mmaped_itlb_data(CPUSH4State *s, hwaddr addr,
if ( entry - > v ) {
/* Overwriting valid entry in utlb. */
target_ulong address = entry - > vpn < < 10 ;
tlb_flush_page ( CPU ( sh_ env_get _cpu( s ) ) , address ) ;
tlb_flush_page ( env_cpu ( s ) , address ) ;
}
entry - > ppn = ( mem_value & 0x1ffffc00 ) > > 10 ;
entry - > v = ( mem_value & 0x00000100 ) > > 8 ;
@ -626,7 +624,7 @@ void cpu_sh4_write_mmaped_utlb_addr(CPUSH4State *s, hwaddr addr,
if ( entry - > vpn = = vpn
& & ( ! use_asid | | entry - > asid = = asid | | entry - > sh ) ) {
if ( utlb_match_entry ) {
CPUState * cs = CPU ( sh_ env_get _cpu( s ) ) ;
CPUState * cs = env_cpu ( s ) ;
/* Multiple TLB Exception */
cs - > exception_index = 0x140 ;
@ -658,13 +656,13 @@ void cpu_sh4_write_mmaped_utlb_addr(CPUSH4State *s, hwaddr addr,
}
if ( needs_tlb_flush ) {
tlb_flush_page ( CPU ( sh_ env_get _cpu( s ) ) , vpn < < 10 ) ;
tlb_flush_page ( env_cpu ( s ) , vpn < < 10 ) ;
}
} else {
int index = ( addr & 0x00003f00 ) > > 8 ;
tlb_t * entry = & s - > utlb [ index ] ;
if ( entry - > v ) {
CPUState * cs = CPU ( sh_ env_get _cpu( s ) ) ;
CPUState * cs = env_cpu ( s ) ;
/* Overwriting valid entry in utlb. */
target_ulong address = entry - > vpn < < 10 ;
@ -719,7 +717,7 @@ void cpu_sh4_write_mmaped_utlb_data(CPUSH4State *s, hwaddr addr,
if ( entry - > v ) {
/* Overwriting valid entry in utlb. */
target_ulong address = entry - > vpn < < 10 ;
tlb_flush_page ( CPU ( sh_ env_get _cpu( s ) ) , address ) ;
tlb_flush_page ( env_cpu ( s ) , address ) ;
}
entry - > ppn = ( mem_value & 0x1ffffc00 ) > > 10 ;
entry - > v = ( mem_value & 0x00000100 ) > > 8 ;