diff options
author | Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | 2023-10-25 11:18:14 +0200 |
---|---|---|
committer | Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | 2023-11-27 10:23:17 +0100 |
commit | 74a7bb2c508200651451af04ea81f1d7d0856e5d (patch) | |
tree | bf1520d0b77cfb2f62eb9294afb6bda95a07f6e0 /libcpp/init.cc | |
parent | 221166ad15eb37b047c77118f2eb1c8442eaa27b (diff) | |
download | gcc-74a7bb2c508200651451af04ea81f1d7d0856e5d.zip gcc-74a7bb2c508200651451af04ea81f1d7d0856e5d.tar.gz gcc-74a7bb2c508200651451af04ea81f1d7d0856e5d.tar.bz2 |
s390: Fix constraint for insn *cmphi_ccu
Currently for an unsigned 16-bit comparison between memory and an
immediate where the high bit is set, a clc is emitted. This is because
the constant is created for mode HI and therefore sign extended. This
means constraint D does not hold anymore. Since the mode already
restricts the immediate to 16 bit, it is enough to make use of
constraint n and chop of the high bits in the output template.
gcc/ChangeLog:
* config/s390/s390.md (*cmphi_ccu): For immediate operand 1 make
use of constraint n instead of D and chop of high bits in the
output template.
Diffstat (limited to 'libcpp/init.cc')
0 files changed, 0 insertions, 0 deletions