[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