This is the mail archive of the
mailing list for the GCC project.
Re: PATCH: PR target/45213: "suffix or operands invalid for `push'" triggered by optimisations on x86_64
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Sat, 7 Aug 2010 12:11:57 +0200
- Subject: Re: PATCH: PR target/45213: "suffix or operands invalid for `push'" triggered by optimisations on x86_64
> "pushq $imm32S" only takes 32bit signed extended immediate. You can't push
> 0xbf800000. Instead, you push -1082130432 or 0xffffffffbf800000. This
> patch makes it signed. OK for trunk/4.5/4.4?
No, see the comment in real.h:
/* IN is a REAL_VALUE_TYPE. OUT is a long. */
#define REAL_VALUE_TO_TARGET_SINGLE(IN, OUT) \
((OUT) = real_to_target (NULL, &(IN), mode_for_size (32, MODE_FLOAT, 0)))