aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Grundler <grundler@parisc-linux.org>2005-10-21 22:56:35 -0400
committerKyle McMartin <kyle@parisc-linux.org>2005-10-21 22:56:35 -0400
commit61520e1f8f5ec3a78510a3254947324711944b98 (patch)
treef3fae16fc105543b505a2e9f6d4de2b852d44655
parente635c96ed6c972e1b3cb0c0fc3681c1204697287 (diff)
[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 @@
35 extrd,u \t2,63,32,\t2 35 extrd,u \t2,63,32,\t2
36#endif 36#endif
37 /* t2 = &__per_cpu_offset[smp_processor_id()]; */ 37 /* t2 = &__per_cpu_offset[smp_processor_id()]; */
38 LDREG,s \t2(\t1),\t2 38 LDREGX \t2(\t1),\t2
39 addil LT%per_cpu__exception_data,%r27 39 addil LT%per_cpu__exception_data,%r27
40 LDREG RT%per_cpu__exception_data(%r1),\t1 40 LDREG RT%per_cpu__exception_data(%r1),\t1
41 /* t1 = &__get_cpu_var(exception_data) */ 41 /* t1 = &__get_cpu_var(exception_data) */
@@ -53,6 +53,8 @@
53 .endm 53 .endm
54#endif 54#endif
55 55
56 .level LEVEL
57
56 .text 58 .text
57 .section .fixup, "ax" 59 .section .fixup, "ax"
58 60
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 @@
22#define _PARISC_ASSEMBLY_H 22#define _PARISC_ASSEMBLY_H
23 23
24#define CALLEE_FLOAT_FRAME_SIZE 80 24#define CALLEE_FLOAT_FRAME_SIZE 80
25#ifdef __LP64__ 25
26#ifdef CONFIG_64BIT
26#define LDREG ldd 27#define LDREG ldd
27#define STREG std 28#define STREG std
28#define LDREGX ldd,s 29#define LDREGX ldd,s
@@ -32,7 +33,7 @@
32#define RP_OFFSET 16 33#define RP_OFFSET 16
33#define FRAME_SIZE 128 34#define FRAME_SIZE 128
34#define CALLEE_REG_FRAME_SIZE 144 35#define CALLEE_REG_FRAME_SIZE 144
35#else 36#else /* CONFIG_64BIT */
36#define LDREG ldw 37#define LDREG ldw
37#define STREG stw 38#define STREG stw
38#define LDREGX ldwx,s 39#define LDREGX ldwx,s
@@ -43,6 +44,7 @@
43#define FRAME_SIZE 64 44#define FRAME_SIZE 64
44#define CALLEE_REG_FRAME_SIZE 128 45#define CALLEE_REG_FRAME_SIZE 128
45#endif 46#endif
47
46#define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE) 48#define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE)
47 49
48#ifdef CONFIG_PA20 50#ifdef CONFIG_PA20