summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Grundler <grundler@parisc-linux.org>2005-10-22 04:56:35 +0200
committerKyle McMartin <kyle@parisc-linux.org>2005-10-22 04:56:35 +0200
commit61520e1f8f5ec3a78510a3254947324711944b98 (patch)
treef3fae16fc105543b505a2e9f6d4de2b852d44655
parent[PARISC] Explicitly specify sr4 when flushing kernel space (diff)
downloadlinux-61520e1f8f5ec3a78510a3254947324711944b98.tar.xz
linux-61520e1f8f5ec3a78510a3254947324711944b98.zip
[PARISC] Specify level to fix binutils level promotion bug
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>
-rw-r--r--arch/parisc/lib/fixup.S4
-rw-r--r--include/asm-parisc/assembly.h6
2 files changed, 7 insertions, 3 deletions
diff --git a/arch/parisc/lib/fixup.S b/arch/parisc/lib/fixup.S
index 1b91612ed964..e0661c2978ed 100644
--- a/arch/parisc/lib/fixup.S
+++ b/arch/parisc/lib/fixup.S
@@ -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"
diff --git a/include/asm-parisc/assembly.h b/include/asm-parisc/assembly.h
index fb8bc7c16e0e..3ce3440d1b0c 100644
--- a/include/asm-parisc/assembly.h
+++ b/include/asm-parisc/assembly.h
@@ -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