[Bug target/26457] -fstack-protector leaks the upper bits of RAX
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Mar 2 14:48:00 GMT 2006
------- Comment #5 from jakub at gcc dot gnu dot org 2006-03-02 14:48 -------
(define_insn "*movdi_xor_rex64"
[(set (match_operand:DI 0 "register_operand" "=r")
(match_operand:DI 1 "const0_operand" "i"))
(clobber (reg:CC FLAGS_REG))]
"TARGET_64BIT && (!TARGET_USE_MOV0 || optimize_size)
&& reload_completed"
"xor{l}\t{%k0, %k0|%k0, %k0}"
[(set_attr "type" "alu1")
(set_attr "mode" "SI")
(set_attr "length_immediate" "0")])
and say:
long foo (void) { return 0; }
with -m64 -O2 gives:
xorl %eax, %eax
ret
If xorl %eax, %eax did not zero extend to 64-bits, GCC compiled code wouldn't
really work.
--
jakub at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26457
More information about the Gcc-bugs
mailing list