diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2021-12-17 16:59:55 +0000 |
---|---|---|
committer | Segher Boessenkool <segher@kernel.crashing.org> | 2021-12-17 17:30:34 +0000 |
commit | 7194397966e6a007cee42360f96834377c3121a4 (patch) | |
tree | 6b2519936286271c414ff0cde198aaef9b2f480d /gcc/config.gcc | |
parent | 2466a8d0dd40d05cb4a239d7d4a21bbd9ffab698 (diff) | |
download | gcc-7194397966e6a007cee42360f96834377c3121a4.zip gcc-7194397966e6a007cee42360f96834377c3121a4.tar.gz gcc-7194397966e6a007cee42360f96834377c3121a4.tar.bz2 |
rs6000: Redo darn (PR103624)
The builtins now all return "long". The patterns have :GPR as the
output mode, so they can be 32-bit as well (the instruction makes sense
in 32 bit just fine). The builtins expand to the DImode version
normally, but to the SImode if {32bit} is true.
2021-12-17 Segher Boessenkool <segher@kernel.crashing.org>
PR target/103624
* config/rs6000/rs6000-builtins.def (__builtin_darn): Expand to
darn_64_di. Add {32bit} attribute. Return long.
(__builtin_darn_32): Expand to darn_32_di. Add {32bit} attribute.
Return long.
(__builtin_darn_raw): Expand to darn_raw_di. Add {32bit} attribute.
Return long.
* config/rs6000/rs6000-call.c (rs6000_expand_builtin): Expand the darn
builtins to the _si variants for -m32.
* config/rs6000/rs6000.md (UNSPECV_DARN_32, UNSPECV_DARN_RAW): Delete.
(UNSPECV_DARN): Update comment.
(darn_32, darn_raw, darn): Delete.
(darn_32_<mode>, darn_64_<mode>, darn_raw_<mode> for GPR): New.
(@darn<mode> for GPR): New.
Diffstat (limited to 'gcc/config.gcc')
0 files changed, 0 insertions, 0 deletions