mpc83xx: Replace ppcDWstore with inline assembly
ppcDWstore/ppcDWload are hardly used by any board, but since they're implemented in start.S, they're always present in every U-Boot image, even if they're not needed. Re-implement these fuctions in C with inline assembly, so that the compiler can decide when to actually include them. Signed-off-by: Mario Six <mario.six@gdsys.cc>
This commit is contained in:
		
							parent
							
								
									8835836ae7
								
							
						
					
					
						commit
						1e718f43de
					
				| 
						 | 
					@ -229,3 +229,21 @@ int cpu_mmc_init(bd_t *bis)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ppcDWstore(unsigned int *addr, unsigned int *value)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						asm("lfd 1, 0(%1)\n\t"
 | 
				
			||||||
 | 
						    "stfd 1, 0(%0)"
 | 
				
			||||||
 | 
						    :
 | 
				
			||||||
 | 
						    : "r" (addr), "r" (value)
 | 
				
			||||||
 | 
						    : "memory");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ppcDWload(unsigned int *addr, unsigned int *ret)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						asm("lfd 1, 0(%0)\n\t"
 | 
				
			||||||
 | 
						    "stfd 1, 0(%1)"
 | 
				
			||||||
 | 
						    :
 | 
				
			||||||
 | 
						    : "r" (addr), "r" (ret)
 | 
				
			||||||
 | 
						    : "memory");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,18 +119,6 @@ disable_addr_trans:
 | 
				
			||||||
	mtspr	SRR1, r3
 | 
						mtspr	SRR1, r3
 | 
				
			||||||
	rfi
 | 
						rfi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.globl	ppcDWstore
 | 
					 | 
				
			||||||
ppcDWstore:
 | 
					 | 
				
			||||||
	lfd	1, 0(r4)
 | 
					 | 
				
			||||||
	stfd	1, 0(r3)
 | 
					 | 
				
			||||||
	blr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	.globl	ppcDWload
 | 
					 | 
				
			||||||
ppcDWload:
 | 
					 | 
				
			||||||
	lfd	1, 0(r3)
 | 
					 | 
				
			||||||
	stfd	1, 0(r4)
 | 
					 | 
				
			||||||
	blr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef CONFIG_DEFAULT_IMMR
 | 
					#ifndef CONFIG_DEFAULT_IMMR
 | 
				
			||||||
#error CONFIG_DEFAULT_IMMR must be defined
 | 
					#error CONFIG_DEFAULT_IMMR must be defined
 | 
				
			||||||
#endif /* CONFIG_DEFAULT_IMMR */
 | 
					#endif /* CONFIG_DEFAULT_IMMR */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue