mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-14 18:31:32 +00:00
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
2 changed files with 18 additions and 12 deletions
|
@ -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…
Add table
Reference in a new issue