[1/2] powerpc/math-emu: remove the dead code in math.c

Submitted by Kevin Hao on July 10, 2013, 1:43 a.m.

Details

Message ID 1373420623-24869-2-git-send-email-haokexin@gmail.com
State Accepted, archived
Commit cf5c2e543c7b4a5ec49f547070c0f3f4c95e20ed
Headers show

Commit Message

Kevin Hao July 10, 2013, 1:43 a.m.
The math.c is only built when CONFIG_MATH_EMULATION is enabled.
So we would never get into the case that CONFIG_MATH_EMULATION
is not defined in this file.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
---
 arch/powerpc/math-emu/math.c | 42 ------------------------------------------
 1 file changed, 42 deletions(-)

Comments

Michael Ellerman July 10, 2013, 2:01 a.m.
On Wed, Jul 10, 2013 at 09:43:42AM +0800, Kevin Hao wrote:
> The math.c is only built when CONFIG_MATH_EMULATION is enabled.
> So we would never get into the case that CONFIG_MATH_EMULATION
> is not defined in this file.

Any idea why we have that there? ie. have the config symbols changed
over time or was this always dead code?

cheers
Kevin Hao July 10, 2013, 2:23 a.m.
On Wed, Jul 10, 2013 at 12:01:33PM +1000, Michael Ellerman wrote:
> On Wed, Jul 10, 2013 at 09:43:42AM +0800, Kevin Hao wrote:
> > The math.c is only built when CONFIG_MATH_EMULATION is enabled.
> > So we would never get into the case that CONFIG_MATH_EMULATION
> > is not defined in this file.
> 
> Any idea why we have that there? ie. have the config symbols changed
> over time or was this always dead code?

No idea. I tried to trace this before submitting the patch. But it has
been there since the begin of the git history. So I just assume that it is
always dead code. :-)

Thanks,
Kevin

> 
> cheers
Michael Ellerman July 10, 2013, 3:25 a.m.
On Wed, Jul 10, 2013 at 10:23:07AM +0800, Kevin Hao wrote:
> On Wed, Jul 10, 2013 at 12:01:33PM +1000, Michael Ellerman wrote:
> > On Wed, Jul 10, 2013 at 09:43:42AM +0800, Kevin Hao wrote:
> > > The math.c is only built when CONFIG_MATH_EMULATION is enabled.
> > > So we would never get into the case that CONFIG_MATH_EMULATION
> > > is not defined in this file.
> > 
> > Any idea why we have that there? ie. have the config symbols changed
> > over time or was this always dead code?
> 
> No idea. I tried to trace this before submitting the patch. But it has
> been there since the begin of the git history. So I just assume that it is
> always dead code. :-)

Yeah looks like it. Even in the git-huge tree I see it in the initial
commit.

You should say that in the commit message though. Otherwise it's not
clear if you're fixing a recent breakage or not.

cheers
Kevin Hao July 10, 2013, 3:46 a.m.
On Wed, Jul 10, 2013 at 01:25:33PM +1000, Michael Ellerman wrote:
> On Wed, Jul 10, 2013 at 10:23:07AM +0800, Kevin Hao wrote:
> > On Wed, Jul 10, 2013 at 12:01:33PM +1000, Michael Ellerman wrote:
> > > On Wed, Jul 10, 2013 at 09:43:42AM +0800, Kevin Hao wrote:
> > > > The math.c is only built when CONFIG_MATH_EMULATION is enabled.
> > > > So we would never get into the case that CONFIG_MATH_EMULATION
> > > > is not defined in this file.
> > > 
> > > Any idea why we have that there? ie. have the config symbols changed
> > > over time or was this always dead code?
> > 
> > No idea. I tried to trace this before submitting the patch. But it has
> > been there since the begin of the git history. So I just assume that it is
> > always dead code. :-)
> 
> Yeah looks like it. Even in the git-huge tree I see it in the initial
> commit.

Thanks for the confirmation.

> 
> You should say that in the commit message though. Otherwise it's not
> clear if you're fixing a recent breakage or not.

Indeed. I will wait a little to see if there are any other comments. Then
respin a new version to capture such info in the commit log.

Thanks,
Kevin

> 
> cheers
Benjamin Herrenschmidt July 10, 2013, 3:48 a.m.
On Wed, 2013-07-10 at 13:25 +1000, Michael Ellerman wrote:
> > > Any idea why we have that there? ie. have the config symbols changed
> > > over time or was this always dead code?
> > 
> > No idea. I tried to trace this before submitting the patch. But it has
> > been there since the begin of the git history. So I just assume that it is
> > always dead code. :-)
> 
> Yeah looks like it. Even in the git-huge tree I see it in the initial
> commit.
> 
> You should say that in the commit message though. Otherwise it's not
> clear if you're fixing a recent breakage or not.

This is ancient code that was meant to emulate only load/stores/fmr without
the rest of the emulation. The goal was to be able to boot userspace that
was compiled without -msoft-float to *some* extent (bcs it would potentially
use fp load/stores for things like memcpy) on small CPUs where the kernel
footprint was critical.

It's been obsolete for a while now.

Cheers,
Ben.

Patch hide | download patch | download mbox

diff --git a/arch/powerpc/math-emu/math.c b/arch/powerpc/math-emu/math.c
index 0328e66..cefb4f2 100644
--- a/arch/powerpc/math-emu/math.c
+++ b/arch/powerpc/math-emu/math.c
@@ -231,47 +231,6 @@  do_mathemu(struct pt_regs *regs)
 	if (get_user(insn, (u32 *)pc))
 		return -EFAULT;
 
-#ifndef CONFIG_MATH_EMULATION
-	switch (insn >> 26) {
-	case LFD:
-		idx = (insn >> 16) & 0x1f;
-		sdisp = (insn & 0xffff);
-		op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
-		op1 = (void *)((idx ? regs->gpr[idx] : 0) + sdisp);
-		lfd(op0, op1, op2, op3);
-		break;
-	case LFDU:
-		idx = (insn >> 16) & 0x1f;
-		sdisp = (insn & 0xffff);
-		op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
-		op1 = (void *)((idx ? regs->gpr[idx] : 0) + sdisp);
-		lfd(op0, op1, op2, op3);
-		regs->gpr[idx] = (unsigned long)op1;
-		break;
-	case STFD:
-		idx = (insn >> 16) & 0x1f;
-		sdisp = (insn & 0xffff);
-		op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
-		op1 = (void *)((idx ? regs->gpr[idx] : 0) + sdisp);
-		stfd(op0, op1, op2, op3);
-		break;
-	case STFDU:
-		idx = (insn >> 16) & 0x1f;
-		sdisp = (insn & 0xffff);
-		op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
-		op1 = (void *)((idx ? regs->gpr[idx] : 0) + sdisp);
-		stfd(op0, op1, op2, op3);
-		regs->gpr[idx] = (unsigned long)op1;
-		break;
-	case OP63:
-		op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
-		op1 = (void *)&current->thread.TS_FPR((insn >> 11) & 0x1f);
-		fmr(op0, op1, op2, op3);
-		break;
-	default:
-		goto illegal;
-	}
-#else /* CONFIG_MATH_EMULATION */
 	switch (insn >> 26) {
 	case LFS:	func = lfs;	type = D;	break;
 	case LFSU:	func = lfs;	type = DU;	break;
@@ -485,7 +444,6 @@  do_mathemu(struct pt_regs *regs)
 	default:
 		break;
 	}
-#endif /* CONFIG_MATH_EMULATION */
 
 	regs->nip += 4;
 	return 0;