diff options
author | Mark Salter <msalter@redhat.com> | 1997-09-02 18:49:12 +0000 |
---|---|---|
committer | Mark Salter <msalter@redhat.com> | 1997-09-02 18:49:12 +0000 |
commit | aa9d6d509fb25984950935b0e1077589fd12b6a8 (patch) | |
tree | 594d2f4a5dc7d4e5395d9c5c9b3c0ae9a60270b9 /arch | |
parent | 513536edb3db60429c8c31ca431b28fd16eed8ca (diff) |
Fixed unaligned copies
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/lib/copy_user.S | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/mips/lib/copy_user.S b/arch/mips/lib/copy_user.S index ea691f4fa..30fa6d6e9 100644 --- a/arch/mips/lib/copy_user.S +++ b/arch/mips/lib/copy_user.S @@ -34,10 +34,10 @@ */ not_even_the_same_alignment: LONG_SUBU v1,zero,a1 - andi v1,a1,3 + andi v1,3 sltu t0,v0,v1 MOVN(v1,v0,t0) - beqz v1,align4 # -> finished + beqz v1,3f # -> finished LONG_ADDU v1,a0 # delay slot 1: lb $1,(a1) EX(1b, fault) @@ -47,7 +47,7 @@ not_even_the_same_alignment: LONG_ADDIU a0,1 bne a0,v1,1b LONG_SUBU v0,1 # delay slot - +3: /* * Ok. We've fixed the alignment of the copy src for this case. * Now let's copy in the usual BLOCK_SIZE byte blocks using unaligned @@ -107,7 +107,7 @@ not_w_aligned: andi v1,3 sltu t0,v0,v1 MOVN(v1,v0,t0) - beqz v1,3f # -> finished + beqz v1,align4 # -> finished LONG_ADDU v1,a0 # delay slot 1: lb $1,(a1) EX(1b, fault) @@ -119,7 +119,6 @@ not_w_aligned: LONG_SUBU v0,1 # delay slot b align4 nop # delay slot -3: /* ---------------------------------------------------------------------- */ |