Skip to content

Commit

Permalink
microblaze: Fix unaligned exception for little endian platform
Browse files Browse the repository at this point in the history
Half word unaligned accesses need to be fixed.

Signed-off-by: Michal Simek <monstr@monstr.eu>
  • Loading branch information
Michal Simek committed Jan 3, 2011
1 parent a3c2695 commit e3288f3
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions arch/microblaze/kernel/hw_exception_handler.S
Original file line number Diff line number Diff line change
Expand Up @@ -945,11 +945,20 @@ store3: sbi r3, r4, 2;
store4: sbi r3, r4, 3; /* Delay slot */
ex_shw_vm:
/* Store the lower half-word, byte-by-byte into destination address */
#ifdef __MICROBLAZEEL__
lbui r3, r5, 0;
store5: sbi r3, r4, 0;
lbui r3, r5, 1;
brid ret_from_exc;
store6: sbi r3, r4, 1; /* Delay slot */
#else
lbui r3, r5, 2;
store5: sbi r3, r4, 0;
lbui r3, r5, 3;
brid ret_from_exc;
store6: sbi r3, r4, 1; /* Delay slot */
#endif

ex_sw_end_vm: /* Exception handling of store word, ends. */

/* We have to prevent cases that get/put_user macros get unaligned pointer
Expand Down

0 comments on commit e3288f3

Please sign in to comment.