summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2008-10-28 21:56:49 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2008-10-28 21:56:49 +0000
commitaa72a6ad6f807e16c767985061c2a1024328a21d (patch)
treecfc69cfb9fc65cae7b78ad851b7d23f90ec327fb
parent9d801b5d621d54fada7ae88e5b7e22d657b46dfd (diff)
Remove extendsidi2 expansion for now. It works, but since it only fills
the two SImode subregs of the DImode destination operand, this confuses the register life analysis and causes gcc to emit wrong warning about values not being initialized. Unfortunately, the fallback logic infers a worse sequence (mov + cmp against zero + ext of the cmp signedness bit, instead of mov + ext of the sign bit), which wastes an instruction and a register. This is hopefully a temporary measure until a nonconfusing flavour of the fast expansion is devised (preferrably one which does not expose the optimize_reg_copy_3 big-endian bug as well).
-rw-r--r--gnu/egcs/gcc/config/m88k/m88k.md9
1 files changed, 0 insertions, 9 deletions
diff --git a/gnu/egcs/gcc/config/m88k/m88k.md b/gnu/egcs/gcc/config/m88k/m88k.md
index 7a2236a71b5..482282ea6dc 100644
--- a/gnu/egcs/gcc/config/m88k/m88k.md
+++ b/gnu/egcs/gcc/config/m88k/m88k.md
@@ -2316,15 +2316,6 @@
;;- sign extension instructions
-(define_expand "extendsidi2"
- [(set (subreg:SI (match_operand:DI 0 "register_operand" "=r") 1)
- (match_operand:SI 1 "general_operand" "g"))
- (set (subreg:SI (match_dup 0) 0)
- (ashiftrt:SI (subreg:SI (match_dup 0) 1)
- (const_int 31)))]
- ""
- "")
-
(define_expand "extendhisi2"
[(set (match_operand:SI 0 "register_operand" "")
(sign_extend:SI (match_operand:HI 1 "nonimmediate_operand" "")))]