[PARISC] Specify level to fix binutils level promotion bug
Grant Grundler [Sat, 22 Oct 2005 02:56:35 +0000 (22:56 -0400)]
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>

arch/parisc/lib/fixup.S
include/asm-parisc/assembly.h

index 1b91612..e0661c2 100644 (file)
@@ -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) */
@@ -53,6 +53,8 @@
        .endm
 #endif
 
+       .level LEVEL
+
        .text
        .section .fixup, "ax"
 
index fb8bc7c..3ce3440 100644 (file)
@@ -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
@@ -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
@@ -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