diff options
author | Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | 2025-08-29 19:55:06 +0900 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2025-08-29 10:54:32 -0700 |
commit | ba9d4b3ce59432f3e7cef5c650b088a12e7ff877 (patch) | |
tree | fd1a70c2610cec2bc418645decc6078b0e589969 /libjava/classpath/gnu/java | |
parent | 25bbc0f20a25a1db59baaf36d119ce274968747f (diff) | |
download | gcc-ba9d4b3ce59432f3e7cef5c650b088a12e7ff877.zip gcc-ba9d4b3ce59432f3e7cef5c650b088a12e7ff877.tar.gz gcc-ba9d4b3ce59432f3e7cef5c650b088a12e7ff877.tar.bz2 |
xtensa: Rewrite bswapsi2_internal with compact syntax
Also, the omission of the instruction that sets the shift amount register
(SAR) to 8 is now more efficient: it is omitted if there was a previous
bswapsi2 in the same BB, but not omitted if no bswapsi2 is found or another
insn that modifies SAR is found first (see below).
Note that the five instructions for writing to SAR are as follows, along
with the insns that use them (except for bswapsi2_internal itself):
- SSA8B
*shift_per_byte, *shlrd_per_byte
- SSA8L
*shift_per_byte, *shlrd_per_byte
- SSR
ashrsi3 (alt 1), lshrsi3 (alt 1), *shlrd_reg, rotrsi3 (alt 1)
- SSL
ashlsi3_internal (alt 1), *shlrd_reg, rotlsi3 (alt 1)
- SSAI
*shlrd_const, rotlsi3 (alt 0), rotrsi3 (alt 0)
gcc/ChangeLog:
* config/xtensa/xtensa-protos.h (xtensa_bswapsi2_output):
New function prototype.
* config/xtensa/xtensa.cc
(xtensa_bswapsi2_output_1, xtensa_bswapsi2_output):
New functions.
* config/xtensa/xtensa.md (bswapsi2_internal):
Rewrite in compact syntax and use xtensa_bswapsi2_output() as asm
output.
gcc/testsuite/ChangeLog:
* gcc.target/xtensa/bswap-SSAI8.c: New.
Diffstat (limited to 'libjava/classpath/gnu/java')
0 files changed, 0 insertions, 0 deletions