• Michal Simek's avatar
    microblaze: Fix unaligned issue on MMU system with BS=0 DIV=1 · 9c749e17
    Michal Simek authored
    Unaligned code use shift for finding register operand.
    There is used BSRLI(r8,r8,2) macro which is expand for BS=0, DIV=1
    by
    	ori rD, r0, (1 << imm);	\
    	idivu rD, rD, rA
    
    but if rD is equal rA then ori instruction rewrite value which
    should be devide.
    
    The patch remove this macro which use idivu instruction because
    idivu takes 32/34 cycles. The highest shifting is 20 which takes
    20 cycles.
    Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
    9c749e17
hw_exception_handler.S 32.4 KB