aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2020-03-18 21:58:45 +0000
committerSegher Boessenkool <segher@kernel.crashing.org>2020-03-18 23:17:28 +0000
commit07fe4af4d51d74b63a76ea632d4db01d1f69f037 (patch)
tree1c49ef98584076690b0128de4ffc8958c775229b /gcc
parent529ea7d9596b26ba103578eeab448e9862a2d2c5 (diff)
downloadgcc-07fe4af4d51d74b63a76ea632d4db01d1f69f037.zip
gcc-07fe4af4d51d74b63a76ea632d4db01d1f69f037.tar.gz
gcc-07fe4af4d51d74b63a76ea632d4db01d1f69f037.tar.bz2
rs6000: Add back some w* constraints (PR91886)
In May and June last year I deleted many of our (vector) constraints. We can now just use "wa" for those, together with some other conditions, which can be per alternative using the "enabled" attribute (which in turn primarily uses the "isa" attribute). But, it turns out that Clang implements some of those constraints as well, and at least musl uses some of them. It is easy for us to add those contraints back (as undocumented aliases to "wa", which always did mean the same thing for valid inline assembler code), so do that. gcc/ * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented aliases for "wa".
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/constraints.md11
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a2e491..66202f0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2020-03-18 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
+ aliases for "wa".
+
2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/90275
diff --git a/gcc/config/rs6000/constraints.md b/gcc/config/rs6000/constraints.md
index 4074a11..c600535 100644
--- a/gcc/config/rs6000/constraints.md
+++ b/gcc/config/rs6000/constraints.md
@@ -45,6 +45,17 @@
FPR (@code{vs0}@dots{}@code{vs31} are @code{f0}@dots{}@code{f31}) or a VR
(@code{vs32}@dots{}@code{vs63} are @code{v0}@dots{}@code{v31}).")
+(define_register_constraint "wd" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+ "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "wf" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+ "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "wi" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+ "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "ws" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+ "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "ww" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+ "@internal A compatibility alias for @code{wa}.")
+
(define_register_constraint "h" "SPECIAL_REGS"
"@internal A special register (@code{vrsave}, @code{ctr}, or @code{lr}).")