diff options
author | Grant Grundler <grundler@parisc-linux.org> | 2005-10-21 22:56:35 -0400 |
---|---|---|
committer | Kyle McMartin <kyle@parisc-linux.org> | 2005-10-21 22:56:35 -0400 |
commit | 61520e1f8f5ec3a78510a3254947324711944b98 (patch) | |
tree | f3fae16fc105543b505a2e9f6d4de2b852d44655 | |
parent | e635c96ed6c972e1b3cb0c0fc3681c1204697287 (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.S | 4 | ||||
-rw-r--r-- | include/asm-parisc/assembly.h | 6 |
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 |