[U-Boot] [PATCH] MIPS: start{, 64}.S: fill branch delay slots with NOP instructions
Daniel Schwierzeck
daniel.schwierzeck at gmail.com
Tue Jan 22 21:50:47 CET 2013
2013/1/16 Gabor Juhos <juhosg at openwrt.org>:
> The romReserved and romExcHandle handlers are
> accessed by a branch instruction however the
> delay slots of those instructions are not filled.
>
> Because the start.S uses the 'noreorder' directive,
> the assembler will not fill the delay slots either,
> and leads to the following assembly code:
>
> 0000056c <romReserved>:
> 56c: 1000ffff b 56c <romReserved>
>
> 00000570 <romExcHandle>:
> 570: 1000ffff b 570 <romExcHandle>
>
> In the resulting code, the second branch instruction
> is placed into the delay slot of the first branch
> instruction, which is not allowed on the MIPS
> architecture.
>
> Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
> Cc: Daniel Schwierzeck <daniel.schwierzeck at googlemail.com>
> ---
> arch/mips/cpu/mips32/start.S | 2 ++
> arch/mips/cpu/mips64/start.S | 1 +
> 2 files changed, 3 insertions(+)
applied to u-boot-mips/master, thanks
--
Best regards,
Daniel
More information about the U-Boot
mailing list