diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2011-07-24 04:48:19 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-07-24 04:48:21 -0400 |
commit | 144d634a21caff1d54cb4bb0d073774e88130045 (patch) | |
tree | 9eea288248189b899ee85ba346cf344e57dd402a /arch/s390/lib | |
parent | 603d1a50acf252621a3598618b018b8123aaba64 (diff) |
[S390] fix s390 assembler code alignments
The alignment is missing for various global symbols in s390 assembly code.
With a recent gcc and an instruction like stgrl this can lead to a
specification exception if the instruction uses such a mis-aligned address.
Specify the alignment explicitely and while add it define __ALIGN for s390
and use the ENTRY define to save some lines of code.
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/lib')
-rw-r--r-- | arch/s390/lib/qrnnd.S | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/s390/lib/qrnnd.S b/arch/s390/lib/qrnnd.S index eb1df632e749..d321329130ec 100644 --- a/arch/s390/lib/qrnnd.S +++ b/arch/s390/lib/qrnnd.S | |||
@@ -1,5 +1,7 @@ | |||
1 | # S/390 __udiv_qrnnd | 1 | # S/390 __udiv_qrnnd |
2 | 2 | ||
3 | #include <linux/linkage.h> | ||
4 | |||
3 | # r2 : &__r | 5 | # r2 : &__r |
4 | # r3 : upper half of 64 bit word n | 6 | # r3 : upper half of 64 bit word n |
5 | # r4 : lower half of 64 bit word n | 7 | # r4 : lower half of 64 bit word n |
@@ -8,8 +10,7 @@ | |||
8 | # the quotient q is to be returned | 10 | # the quotient q is to be returned |
9 | 11 | ||
10 | .text | 12 | .text |
11 | .globl __udiv_qrnnd | 13 | ENTRY(__udiv_qrnnd) |
12 | __udiv_qrnnd: | ||
13 | st %r2,24(%r15) # store pointer to reminder for later | 14 | st %r2,24(%r15) # store pointer to reminder for later |
14 | lr %r0,%r3 # reload n | 15 | lr %r0,%r3 # reload n |
15 | lr %r1,%r4 | 16 | lr %r1,%r4 |