Skip to content

Commit

Permalink
[PARISC] Specify level to fix binutils level promotion bug
Browse files Browse the repository at this point in the history
fixup.S needs to specify .level and use correct LDREG macro.
New binutils has a bug where it doesn't "promote" from PA1.0 to PA1.1
correctly when using ",s" completer.

remove use of __LP64__ in assembly.h and add some white space.

Signed-off-by: Grant Grundler <grundler@parisc-linux.org>

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
  • Loading branch information
Grant Grundler authored and Kyle McMartin committed Oct 22, 2005
1 parent e635c96 commit 61520e1
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
4 changes: 3 additions & 1 deletion arch/parisc/lib/fixup.S
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
extrd,u \t2,63,32,\t2
#endif
/* t2 = &__per_cpu_offset[smp_processor_id()]; */
LDREG,s \t2(\t1),\t2
LDREGX \t2(\t1),\t2
addil LT%per_cpu__exception_data,%r27
LDREG RT%per_cpu__exception_data(%r1),\t1
/* t1 = &__get_cpu_var(exception_data) */
Expand All @@ -53,6 +53,8 @@
.endm
#endif

.level LEVEL

.text
.section .fixup, "ax"

Expand Down
6 changes: 4 additions & 2 deletions include/asm-parisc/assembly.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
#define _PARISC_ASSEMBLY_H

#define CALLEE_FLOAT_FRAME_SIZE 80
#ifdef __LP64__

#ifdef CONFIG_64BIT
#define LDREG ldd
#define STREG std
#define LDREGX ldd,s
Expand All @@ -32,7 +33,7 @@
#define RP_OFFSET 16
#define FRAME_SIZE 128
#define CALLEE_REG_FRAME_SIZE 144
#else
#else /* CONFIG_64BIT */
#define LDREG ldw
#define STREG stw
#define LDREGX ldwx,s
Expand All @@ -43,6 +44,7 @@
#define FRAME_SIZE 64
#define CALLEE_REG_FRAME_SIZE 128
#endif

#define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE)

#ifdef CONFIG_PA20
Expand Down

0 comments on commit 61520e1

Please sign in to comment.