* [PATCH] powerpc: mtmsrd not defined
@ 2010-08-22 22:09 Sean MacLennan
2010-08-22 22:34 ` Benjamin Herrenschmidt
0 siblings, 1 reply; 13+ messages in thread
From: Sean MacLennan @ 2010-08-22 22:09 UTC (permalink / raw)
To: linuxppc-dev
Let's try a patch to get the ball rolling.
ldstfp.S does not compile if mtmsrd not defined. But is it only defined
for BOOK3S_64. This defines mtmsrd to be mtmsr on all but BOOK3S_64.
This solves the compile problem... but I am not sure how to test it.
I am also not sure if this is the best place to define it. If the
mapping of mtmsrd to mtmsr is correct, maybe it should be in asm/reg.h?
Signed-off-by: Sean MacLennan <smaclennan@pikatech.com>
---
diff --git a/arch/powerpc/lib/ldstfp.S b/arch/powerpc/lib/ldstfp.S
index f644863..df8a03b 100644
--- a/arch/powerpc/lib/ldstfp.S
+++ b/arch/powerpc/lib/ldstfp.S
@@ -17,6 +17,10 @@
#include <asm/asm-offsets.h>
#include <linux/errno.h>
+#ifndef CONFIG_PPC_BOOK3S_64
+#define mtmsrd mtmsr
+#endif
+
#define STKFRM (PPC_MIN_STKFRM + 16)
.macro extab instr,handler
Cheers,
Sean
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-08-22 22:09 [PATCH] powerpc: mtmsrd not defined Sean MacLennan
@ 2010-08-22 22:34 ` Benjamin Herrenschmidt
2010-08-22 22:48 ` Sean MacLennan
0 siblings, 1 reply; 13+ messages in thread
From: Benjamin Herrenschmidt @ 2010-08-22 22:34 UTC (permalink / raw)
To: Sean MacLennan; +Cc: linuxppc-dev
On Sun, 2010-08-22 at 18:09 -0400, Sean MacLennan wrote:
> Let's try a patch to get the ball rolling.
>
> ldstfp.S does not compile if mtmsrd not defined. But is it only defined
> for BOOK3S_64. This defines mtmsrd to be mtmsr on all but BOOK3S_64.
> This solves the compile problem... but I am not sure how to test it.
>
> I am also not sure if this is the best place to define it. If the
> mapping of mtmsrd to mtmsr is correct, maybe it should be in asm/reg.h?
I'd rather have a macro somewhere in ppc_asm.h (MTMSR ?) that does the
right thing. We might even already have one...
Cheers,
Ben.
> Signed-off-by: Sean MacLennan <smaclennan@pikatech.com>
> ---
> diff --git a/arch/powerpc/lib/ldstfp.S b/arch/powerpc/lib/ldstfp.S
> index f644863..df8a03b 100644
> --- a/arch/powerpc/lib/ldstfp.S
> +++ b/arch/powerpc/lib/ldstfp.S
> @@ -17,6 +17,10 @@
> #include <asm/asm-offsets.h>
> #include <linux/errno.h>
>
> +#ifndef CONFIG_PPC_BOOK3S_64
> +#define mtmsrd mtmsr
> +#endif
> +
> #define STKFRM (PPC_MIN_STKFRM + 16)
>
> .macro extab instr,handler
>
> Cheers,
> Sean
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-08-22 22:34 ` Benjamin Herrenschmidt
@ 2010-08-22 22:48 ` Sean MacLennan
2010-08-31 4:37 ` Paul Mackerras
2010-08-31 16:17 ` Kumar Gala
0 siblings, 2 replies; 13+ messages in thread
From: Sean MacLennan @ 2010-08-22 22:48 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev
On Mon, 23 Aug 2010 08:34:54 +1000
Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> I'd rather have a macro somewhere in ppc_asm.h (MTMSR ?) that does the
> right thing. We might even already have one...
We do.... here is a new, improved patch.
Replace the BOOK3S_64 specific mtmsrd with the generic MTMSRD macro.
Signed-off-by: Sean MacLennan <smaclennan@pikatech.com>
---
diff --git a/arch/powerpc/lib/ldstfp.S b/arch/powerpc/lib/ldstfp.S
index f644863..ce818a5 100644
--- a/arch/powerpc/lib/ldstfp.S
+++ b/arch/powerpc/lib/ldstfp.S
@@ -81,7 +81,7 @@ _GLOBAL(do_lfs)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -93,7 +93,7 @@ _GLOBAL(do_lfs)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -108,7 +108,7 @@ _GLOBAL(do_lfd)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -120,7 +120,7 @@ _GLOBAL(do_lfd)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -135,7 +135,7 @@ _GLOBAL(do_stfs)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -147,7 +147,7 @@ _GLOBAL(do_stfs)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -162,7 +162,7 @@ _GLOBAL(do_stfd)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -174,7 +174,7 @@ _GLOBAL(do_stfd)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -229,7 +229,7 @@ _GLOBAL(do_lvx)
oris r7,r6,MSR_VEC@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stvx vr0,r1,r8
@@ -241,7 +241,7 @@ _GLOBAL(do_lvx)
lvx vr0,r1,r8
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -257,7 +257,7 @@ _GLOBAL(do_stvx)
oris r7,r6,MSR_VEC@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stvx vr0,r1,r8
@@ -269,7 +269,7 @@ _GLOBAL(do_stvx)
lvx vr0,r1,r8
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -325,7 +325,7 @@ _GLOBAL(do_lxvd2x)
oris r7,r6,MSR_VSX@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
STXVD2X(0,r1,r8)
@@ -337,7 +337,7 @@ _GLOBAL(do_lxvd2x)
LXVD2X(0,r1,r8)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -353,7 +353,7 @@ _GLOBAL(do_stxvd2x)
oris r7,r6,MSR_VSX@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
STXVD2X(0,r1,r8)
@@ -365,7 +365,7 @@ _GLOBAL(do_stxvd2x)
LXVD2X(0,r1,r8)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
Cheers,
Sean
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-08-22 22:48 ` Sean MacLennan
@ 2010-08-31 4:37 ` Paul Mackerras
2010-08-31 16:17 ` Kumar Gala
1 sibling, 0 replies; 13+ messages in thread
From: Paul Mackerras @ 2010-08-31 4:37 UTC (permalink / raw)
To: Sean MacLennan; +Cc: linuxppc-dev
On Sun, Aug 22, 2010 at 06:48:44PM -0400, Sean MacLennan wrote:
> Replace the BOOK3S_64 specific mtmsrd with the generic MTMSRD macro.
>
> Signed-off-by: Sean MacLennan <smaclennan@pikatech.com>
Acked-by: Paul Mackerras <paulus@samba.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-08-22 22:48 ` Sean MacLennan
2010-08-31 4:37 ` Paul Mackerras
@ 2010-08-31 16:17 ` Kumar Gala
2010-08-31 17:46 ` Sean MacLennan
1 sibling, 1 reply; 13+ messages in thread
From: Kumar Gala @ 2010-08-31 16:17 UTC (permalink / raw)
To: Sean MacLennan; +Cc: linuxppc-dev
On Aug 22, 2010, at 5:48 PM, Sean MacLennan wrote:
> On Mon, 23 Aug 2010 08:34:54 +1000
> Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
>> I'd rather have a macro somewhere in ppc_asm.h (MTMSR ?) that does the
>> right thing. We might even already have one...
>
> We do.... here is a new, improved patch.
>
> Replace the BOOK3S_64 specific mtmsrd with the generic MTMSRD macro.
>
> Signed-off-by: Sean MacLennan <smaclennan@pikatech.com>
> ---
Can we add proper CONFIG_PPC_FPU into this file.
- k
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-08-31 16:17 ` Kumar Gala
@ 2010-08-31 17:46 ` Sean MacLennan
2010-09-01 2:55 ` Sean MacLennan
0 siblings, 1 reply; 13+ messages in thread
From: Sean MacLennan @ 2010-08-31 17:46 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
On Tue, 31 Aug 2010 11:17:17 -0500
Kumar Gala <galak@kernel.crashing.org> wrote:
> Can we add proper CONFIG_PPC_FPU into this file.
If nobody beats me to it.... I can try this evening.
Cheers,
Sean
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-08-31 17:46 ` Sean MacLennan
@ 2010-09-01 2:55 ` Sean MacLennan
2010-09-01 6:45 ` Kumar Gala
2010-09-01 8:02 ` Paul Mackerras
0 siblings, 2 replies; 13+ messages in thread
From: Sean MacLennan @ 2010-09-01 2:55 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
On Tue, 31 Aug 2010 13:46:05 -0400
Sean MacLennan <smaclennan@pikatech.com> wrote:
> On Tue, 31 Aug 2010 11:17:17 -0500
> Kumar Gala <galak@kernel.crashing.org> wrote:
>
> > Can we add proper CONFIG_PPC_FPU into this file.
>
> If nobody beats me to it.... I can try this evening.
I had to give up. Without the CONFIG_PPC_FPU it compiles fine for an
FPU less 44x. But with the CONFIG_PPC_FPU, I get the following errors:
arch/powerpc/lib/built-in.o: In function `__copy_tofrom_user':
arch/powerpc/lib/copy_32.S:(.kprobes.text+0xf8e): undefined reference to `do_lfs'
arch/powerpc/lib/copy_32.S:(.kprobes.text+0xf96): undefined reference to `do_lfs'
arch/powerpc/lib/copy_32.S:(.kprobes.text+0xfc2): undefined reference to `do_lfd'
arch/powerpc/lib/copy_32.S:(.kprobes.text+0xfca): undefined reference to `do_lfd'
arch/powerpc/lib/copy_32.S:(.kprobes.text+0xff6): undefined reference to `do_stfs'
arch/powerpc/lib/copy_32.S:(.kprobes.text+0xffe): undefined reference to `do_stfs'
arch/powerpc/lib/copy_32.S:(.kprobes.text+0x102a): undefined reference to `do_stfd'
arch/powerpc/lib/copy_32.S:(.kprobes.text+0x1032): undefined reference to `do_stfd'
make: *** [.tmp_vmlinux1] Error 1
Oops, sorry, it will say arch/powerpc/lib/copy32.S... I corrected that.
But I cannot find how copy_32.S is including those functions.
Cheers,
Sean
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-09-01 2:55 ` Sean MacLennan
@ 2010-09-01 6:45 ` Kumar Gala
2010-09-01 6:57 ` Sean MacLennan
2010-09-01 8:02 ` Paul Mackerras
1 sibling, 1 reply; 13+ messages in thread
From: Kumar Gala @ 2010-09-01 6:45 UTC (permalink / raw)
To: Sean MacLennan; +Cc: linuxppc-dev
On Aug 31, 2010, at 9:55 PM, Sean MacLennan wrote:
> On Tue, 31 Aug 2010 13:46:05 -0400
> Sean MacLennan <smaclennan@pikatech.com> wrote:
>=20
>> On Tue, 31 Aug 2010 11:17:17 -0500
>> Kumar Gala <galak@kernel.crashing.org> wrote:
>>=20
>>> Can we add proper CONFIG_PPC_FPU into this file. =20
>>=20
>> If nobody beats me to it.... I can try this evening.
>=20
> I had to give up. Without the CONFIG_PPC_FPU it compiles fine for an
> FPU less 44x. But with the CONFIG_PPC_FPU, I get the following errors:
>=20
> arch/powerpc/lib/built-in.o: In function `__copy_tofrom_user':
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0xf8e): undefined reference =
to `do_lfs'
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0xf96): undefined reference =
to `do_lfs'
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0xfc2): undefined reference =
to `do_lfd'
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0xfca): undefined reference =
to `do_lfd'
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0xff6): undefined reference =
to `do_stfs'
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0xffe): undefined reference =
to `do_stfs'
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0x102a): undefined reference =
to `do_stfd'
> arch/powerpc/lib/copy_32.S:(.kprobes.text+0x1032): undefined reference =
to `do_stfd'
> make: *** [.tmp_vmlinux1] Error 1
>=20
>=20
> Oops, sorry, it will say arch/powerpc/lib/copy32.S... I corrected =
that.
> But I cannot find how copy_32.S is including those functions.
>=20
> Cheers,
> Sean
For what defconfig setup do you get the errors above?
- k=
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-09-01 6:45 ` Kumar Gala
@ 2010-09-01 6:57 ` Sean MacLennan
0 siblings, 0 replies; 13+ messages in thread
From: Sean MacLennan @ 2010-09-01 6:57 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
On Wed, 1 Sep 2010 01:45:46 -0500
Kumar Gala <galak@kernel.crashing.org> wrote:
> For what defconfig setup do you get the errors above?
44x/ebony_defconfig
Then enable KPROBES (or XMON).
Then put an #ifdef CONFIG_PPC_FPU in ldstfp.S.
Cheers,
Sean
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-09-01 2:55 ` Sean MacLennan
2010-09-01 6:45 ` Kumar Gala
@ 2010-09-01 8:02 ` Paul Mackerras
2010-09-01 13:01 ` Kumar Gala
2010-09-01 16:40 ` Sean MacLennan
1 sibling, 2 replies; 13+ messages in thread
From: Paul Mackerras @ 2010-09-01 8:02 UTC (permalink / raw)
To: Sean MacLennan; +Cc: linuxppc-dev
On Tue, Aug 31, 2010 at 10:55:25PM -0400, Sean MacLennan wrote:
> I had to give up. Without the CONFIG_PPC_FPU it compiles fine for an
> FPU less 44x. But with the CONFIG_PPC_FPU, I get the following errors:
Ah, those references would be from arch/powerpc/lib/sstep.c. Evidently
we need #ifdef CONFIG_PPC_FPU around the emulation of the floating-point
loads and stores.
Do we do any in-kernel emulation of floating-point operations with
CONFIG_PPC_FPU turned off?
Paul.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-09-01 8:02 ` Paul Mackerras
@ 2010-09-01 13:01 ` Kumar Gala
2010-09-01 17:21 ` Sean MacLennan
2010-09-01 16:40 ` Sean MacLennan
1 sibling, 1 reply; 13+ messages in thread
From: Kumar Gala @ 2010-09-01 13:01 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev, Sean MacLennan
On Sep 1, 2010, at 3:02 AM, Paul Mackerras wrote:
> On Tue, Aug 31, 2010 at 10:55:25PM -0400, Sean MacLennan wrote:
>=20
>> I had to give up. Without the CONFIG_PPC_FPU it compiles fine for an
>> FPU less 44x. But with the CONFIG_PPC_FPU, I get the following =
errors:
>=20
> Ah, those references would be from arch/powerpc/lib/sstep.c. =
Evidently
> we need #ifdef CONFIG_PPC_FPU around the emulation of the =
floating-point
> loads and stores.
>=20
> Do we do any in-kernel emulation of floating-point operations with
> CONFIG_PPC_FPU turned off?
I'm not aware of any. I haven't looked at the Program Check exception =
path to know if we'd handle emulation gracefully or not for =
!CONFIG_PPC_FPU.
- k=
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-09-01 8:02 ` Paul Mackerras
2010-09-01 13:01 ` Kumar Gala
@ 2010-09-01 16:40 ` Sean MacLennan
1 sibling, 0 replies; 13+ messages in thread
From: Sean MacLennan @ 2010-09-01 16:40 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
On Wed, 1 Sep 2010 18:02:14 +1000
Paul Mackerras <paulus@samba.org> wrote:
> Ah, those references would be from arch/powerpc/lib/sstep.c.
> Evidently we need #ifdef CONFIG_PPC_FPU around the emulation of the
> floating-point loads and stores.
I tried that yesterday and it didn't help, although maybe I forgot to
mask out a few. I will check again.
Cheers,
Sean
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] powerpc: mtmsrd not defined
2010-09-01 13:01 ` Kumar Gala
@ 2010-09-01 17:21 ` Sean MacLennan
0 siblings, 0 replies; 13+ messages in thread
From: Sean MacLennan @ 2010-09-01 17:21 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev, Paul Mackerras
Ok, I didn't catch all the cases the first time :( Since the errors
seemed to come from copy_32.S, I didn't spend much time on sstep.c.
Here is an updated patch the fixes the mtmsrd problem and maps out the
floating point.
Cheers,
Sean
Replace the BOOK3S_64 specific mtmsrd with the generic MTMSRD macro.
Only enable ldstfp when CONFIG_PPC_FPU is set.
Signed-off-by: Sean MacLennan <smaclennan@pikatech.com>
---
diff --git a/arch/powerpc/lib/copy_32.S b/arch/powerpc/lib/copy_32.S
index 74a7f41..55f19f9 100644
--- a/arch/powerpc/lib/copy_32.S
+++ b/arch/powerpc/lib/copy_32.S
@@ -62,7 +62,7 @@
.text
.stabs "arch/powerpc/lib/",N_SO,0,0,0f
- .stabs "copy32.S",N_SO,0,0,0f
+ .stabs "copy_32.S",N_SO,0,0,0f
0:
CACHELINE_BYTES = L1_CACHE_BYTES
diff --git a/arch/powerpc/lib/ldstfp.S b/arch/powerpc/lib/ldstfp.S
index f644863..6a85380 100644
--- a/arch/powerpc/lib/ldstfp.S
+++ b/arch/powerpc/lib/ldstfp.S
@@ -17,6 +17,8 @@
#include <asm/asm-offsets.h>
#include <linux/errno.h>
+#ifdef CONFIG_PPC_FPU
+
#define STKFRM (PPC_MIN_STKFRM + 16)
.macro extab instr,handler
@@ -81,7 +83,7 @@ _GLOBAL(do_lfs)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -93,7 +95,7 @@ _GLOBAL(do_lfs)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -108,7 +110,7 @@ _GLOBAL(do_lfd)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -120,7 +122,7 @@ _GLOBAL(do_lfd)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -135,7 +137,7 @@ _GLOBAL(do_stfs)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -147,7 +149,7 @@ _GLOBAL(do_stfs)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -162,7 +164,7 @@ _GLOBAL(do_stfd)
mfmsr r6
ori r7,r6,MSR_FP
cmpwi cr7,r3,0
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stfd fr0,STKFRM-16(r1)
@@ -174,7 +176,7 @@ _GLOBAL(do_stfd)
lfd fr0,STKFRM-16(r1)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -229,7 +231,7 @@ _GLOBAL(do_lvx)
oris r7,r6,MSR_VEC@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stvx vr0,r1,r8
@@ -241,7 +243,7 @@ _GLOBAL(do_lvx)
lvx vr0,r1,r8
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -257,7 +259,7 @@ _GLOBAL(do_stvx)
oris r7,r6,MSR_VEC@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
stvx vr0,r1,r8
@@ -269,7 +271,7 @@ _GLOBAL(do_stvx)
lvx vr0,r1,r8
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -325,7 +327,7 @@ _GLOBAL(do_lxvd2x)
oris r7,r6,MSR_VSX@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
STXVD2X(0,r1,r8)
@@ -337,7 +339,7 @@ _GLOBAL(do_lxvd2x)
LXVD2X(0,r1,r8)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -353,7 +355,7 @@ _GLOBAL(do_stxvd2x)
oris r7,r6,MSR_VSX@h
cmpwi cr7,r3,0
li r8,STKFRM-16
- mtmsrd r7
+ MTMSRD(r7)
isync
beq cr7,1f
STXVD2X(0,r1,r8)
@@ -365,7 +367,7 @@ _GLOBAL(do_stxvd2x)
LXVD2X(0,r1,r8)
4: PPC_LL r0,STKFRM+PPC_LR_STKOFF(r1)
mtlr r0
- mtmsrd r6
+ MTMSRD(r6)
isync
mr r3,r9
addi r1,r1,STKFRM
@@ -373,3 +375,5 @@ _GLOBAL(do_stxvd2x)
extab 2b,3b
#endif /* CONFIG_VSX */
+
+#endif /* CONFIG_PPC_FPU */
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index e0a9858..ae5189a 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -30,6 +30,7 @@ extern char system_call_common[];
#define XER_OV 0x40000000U
#define XER_CA 0x20000000U
+#ifdef CONFIG_PPC_FPU
/*
* Functions in ldstfp.S
*/
@@ -41,6 +42,7 @@ extern int do_lvx(int rn, unsigned long ea);
extern int do_stvx(int rn, unsigned long ea);
extern int do_lxvd2x(int rn, unsigned long ea);
extern int do_stxvd2x(int rn, unsigned long ea);
+#endif
/*
* Determine whether a conditional branch instruction would branch.
@@ -290,6 +292,7 @@ static int __kprobes write_mem(unsigned long val, unsigned long ea, int nb,
return write_mem_unaligned(val, ea, nb, regs);
}
+#ifdef CONFIG_PPC_FPU
/*
* Check the address and alignment, and call func to do the actual
* load or store.
@@ -351,6 +354,7 @@ static int __kprobes do_fp_store(int rn, int (*func)(int, unsigned long),
}
return err;
}
+#endif
#ifdef CONFIG_ALTIVEC
/* For Altivec/VMX, no need to worry about alignment */
@@ -1393,6 +1397,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
regs->gpr[rd] = byterev_4(val);
goto ldst_done;
+#ifdef CONFIG_PPC_CPU
case 535: /* lfsx */
case 567: /* lfsux */
if (!(regs->msr & MSR_FP))
@@ -1424,6 +1429,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
ea = xform_ea(instr, regs, u);
err = do_fp_store(rd, do_stfd, ea, 8, regs);
goto ldst_done;
+#endif
#ifdef __powerpc64__
case 660: /* stdbrx */
@@ -1534,6 +1540,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
} while (++rd < 32);
goto instr_done;
+#ifdef CONFIG_PPC_FPU
case 48: /* lfs */
case 49: /* lfsu */
if (!(regs->msr & MSR_FP))
@@ -1565,6 +1572,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
ea = dform_ea(instr, regs);
err = do_fp_store(rd, do_stfd, ea, 8, regs);
goto ldst_done;
+#endif
#ifdef __powerpc64__
case 58: /* ld[u], lwa */
^ permalink raw reply related [flat|nested] 13+ messages in thread
end of thread, other threads:[~2010-09-01 17:21 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-22 22:09 [PATCH] powerpc: mtmsrd not defined Sean MacLennan
2010-08-22 22:34 ` Benjamin Herrenschmidt
2010-08-22 22:48 ` Sean MacLennan
2010-08-31 4:37 ` Paul Mackerras
2010-08-31 16:17 ` Kumar Gala
2010-08-31 17:46 ` Sean MacLennan
2010-09-01 2:55 ` Sean MacLennan
2010-09-01 6:45 ` Kumar Gala
2010-09-01 6:57 ` Sean MacLennan
2010-09-01 8:02 ` Paul Mackerras
2010-09-01 13:01 ` Kumar Gala
2010-09-01 17:21 ` Sean MacLennan
2010-09-01 16:40 ` Sean MacLennan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).