diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2020-03-18 21:58:45 +0000 |
---|---|---|
committer | Segher Boessenkool <segher@kernel.crashing.org> | 2020-03-18 23:17:28 +0000 |
commit | 07fe4af4d51d74b63a76ea632d4db01d1f69f037 (patch) | |
tree | 1c49ef98584076690b0128de4ffc8958c775229b /gcc | |
parent | 529ea7d9596b26ba103578eeab448e9862a2d2c5 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/constraints.md | 11 |
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}).") |