mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 12:07:31 +00:00 
			
		
		
		
	target/ppc: Remove the function ppc_hash64_set_sdr1()
The function ppc_hash64_set_sdr1 basically checked the htabsize and set an error if it was too big, otherwise it just stored the value in SPR_SDR1. Given that the only function which calls ppc_hash64_set_sdr1() is ppc_store_sdr1(), why not handle the checking in ppc_store_sdr1() to avoid the extra function call. Note that ppc_store_sdr1() already stores the value in SPR_SDR1 anyway, so we were doing it twice. Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com> [dwg: Remove unnecessary error temporary] Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
		
							parent
							
								
									e57ca75ce3
								
							
						
					
					
						commit
						8d63351f9f
					
				| @ -289,24 +289,6 @@ target_ulong helper_load_slb_vsid(CPUPPCState *env, target_ulong rb) | ||||
|     return rt; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * 64-bit hash table MMU handling | ||||
|  */ | ||||
| void ppc_hash64_set_sdr1(PowerPCCPU *cpu, target_ulong value, | ||||
|                          Error **errp) | ||||
| { | ||||
|     CPUPPCState *env = &cpu->env; | ||||
|     target_ulong htabsize = value & SDR_64_HTABSIZE; | ||||
| 
 | ||||
|     if (htabsize > 28) { | ||||
|         error_setg(errp, | ||||
|                    "Invalid HTABSIZE 0x" TARGET_FMT_lx" stored in SDR1", | ||||
|                    htabsize); | ||||
|         return; | ||||
|     } | ||||
|     env->spr[SPR_SDR1] = value; | ||||
| } | ||||
| 
 | ||||
| static int ppc_hash64_pte_prot(PowerPCCPU *cpu, | ||||
|                                ppc_slb_t *slb, ppc_hash_pte64_t pte) | ||||
| { | ||||
|  | ||||
| @ -109,9 +109,6 @@ static inline hwaddr ppc_hash64_hpt_mask(PowerPCCPU *cpu) | ||||
|     return (1ULL << ((cpu->env.spr[SPR_SDR1] & SDR_64_HTABSIZE) + 18 - 7)) - 1; | ||||
| } | ||||
| 
 | ||||
| void ppc_hash64_set_sdr1(PowerPCCPU *cpu, target_ulong value, | ||||
|                          Error **errp); | ||||
| 
 | ||||
| struct ppc_hash_pte64 { | ||||
|     uint64_t pte0, pte1; | ||||
| }; | ||||
|  | ||||
| @ -28,6 +28,7 @@ | ||||
| #include "exec/cpu_ldst.h" | ||||
| #include "exec/log.h" | ||||
| #include "helper_regs.h" | ||||
| #include "qemu/error-report.h" | ||||
| 
 | ||||
| //#define DEBUG_MMU
 | ||||
| //#define DEBUG_BATS
 | ||||
| @ -2006,13 +2007,11 @@ void ppc_store_sdr1(CPUPPCState *env, target_ulong value) | ||||
|     assert(!cpu->vhyp); | ||||
| #if defined(TARGET_PPC64) | ||||
|     if (env->mmu_model & POWERPC_MMU_64) { | ||||
|         PowerPCCPU *cpu = ppc_env_get_cpu(env); | ||||
|         Error *local_err = NULL; | ||||
|         target_ulong htabsize = value & SDR_64_HTABSIZE; | ||||
| 
 | ||||
|         ppc_hash64_set_sdr1(cpu, value, &local_err); | ||||
|         if (local_err) { | ||||
|             error_report_err(local_err); | ||||
|             error_free(local_err); | ||||
|         if (htabsize > 28) { | ||||
|             error_report("Invalid HTABSIZE 0x" TARGET_FMT_lx" stored in SDR1", | ||||
|                          htabsize); | ||||
|             return; | ||||
|         } | ||||
|     } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Suraj Jitindar Singh
						Suraj Jitindar Singh