Message ID | 1373420623-24869-2-git-send-email-haokexin@gmail.com (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | cf5c2e543c7b4a5ec49f547070c0f3f4c95e20ed |
Headers | show |
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
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
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
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
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.
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 *)¤t->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 *)¤t->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 *)¤t->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 *)¤t->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 *)¤t->thread.TS_FPR((insn >> 21) & 0x1f); - op1 = (void *)¤t->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;
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(-)