Get rid of a useless copy instruction in the SH1 32*32->64bit multiply routines (signed and unsigned).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20013 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2009-02-15 23:13:26 +00:00
parent 789b0a2eb9
commit d8ff94121f
2 changed files with 14 additions and 16 deletions

View file

@ -78,14 +78,13 @@ static inline unsigned sc_mul32(unsigned a, unsigned b)
"addc %[t2], %[t3] \n" /* t3 += t2, carry -> t2 */
"movt %[t2] \n"
"mulu %[a], %[b] \n" /* b * d */
"mov %[t3], %[t1] \n" /* t2t3 <<= 16 */
"mov %[t3], %[t1] \n" /* t1t3 = t2t3 << 16 */
"xtrct %[t2], %[t1] \n"
"mov %[t1], %[t2] \n"
"shll16 %[t3] \n"
"sts macl, %[t1] \n" /* lo = b * d */
"clrt \n" /* hi.lo += t2t3 */
"addc %[t3], %[t1] \n"
"addc %[t2], %[r] \n"
"sts macl, %[t2] \n" /* lo = b * d */
"clrt \n" /* hi.lo += t1t3 */
"addc %[t3], %[t2] \n"
"addc %[t1], %[r] \n"
: /* outputs */
[r] "=&r"(r),
[t1]"=&r"(t1),