diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-15 14:23:01 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-15 14:23:47 -0400 |
commit | 1b35a57b1c1781f0fc8fc554f732b3a5408c5244 (patch) | |
tree | 80e5616798e0dc5ec138f020e6aa9ae482378462 /arch/sparc/lib/muldi3.S | |
parent | 2119ff6d2bc0dd6a97de1632e50cd7936049738c (diff) |
sparc32: Kill off software 32-bit multiply/divide routines.
For the explicit calls to .udiv/.umul in assembler, I made a
mechanical (read as: safe) transformation. I didn't attempt
to make any simplifications.
In particular, __ndelay and __udelay can be simplified significantly.
Some of the %y reads are unnecessary and these routines have no need
any longer for allocating a register window, they can be leaf
functions.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/lib/muldi3.S')
-rw-r--r-- | arch/sparc/lib/muldi3.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sparc/lib/muldi3.S b/arch/sparc/lib/muldi3.S index 7f17872d0603..9794939d1c12 100644 --- a/arch/sparc/lib/muldi3.S +++ b/arch/sparc/lib/muldi3.S | |||
@@ -63,12 +63,12 @@ __muldi3: | |||
63 | rd %y, %o1 | 63 | rd %y, %o1 |
64 | mov %o1, %l3 | 64 | mov %o1, %l3 |
65 | mov %i1, %o0 | 65 | mov %i1, %o0 |
66 | call .umul | ||
67 | mov %i2, %o1 | 66 | mov %i2, %o1 |
67 | umul %o0, %o1, %o0 | ||
68 | mov %o0, %l0 | 68 | mov %o0, %l0 |
69 | mov %i0, %o0 | 69 | mov %i0, %o0 |
70 | call .umul | ||
71 | mov %i3, %o1 | 70 | mov %i3, %o1 |
71 | umul %o0, %o1, %o0 | ||
72 | add %l0, %o0, %l0 | 72 | add %l0, %o0, %l0 |
73 | mov %l2, %i0 | 73 | mov %l2, %i0 |
74 | add %l2, %l0, %i0 | 74 | add %l2, %l0, %i0 |