--- Comment #5 from hjl dot tools at gmail dot com 2009-09-17 13:47 ---
This is a dup for PR 17387.
*** This bug has been marked as a duplicate of 17387 ***
--
hjl dot tools at gmail dot com changed:
What|Removed |Added
---
--- Comment #4 from dean at arctic dot org 2009-09-17 10:27 ---
(In reply to comment #2)
> 32bit moves and other instructions _SIGN_EXTEND_ results to 64bits on x86_64
wait i just reread your statement.
the amd64 ISA zero-extends 32-bit register writes out to 64-bits. please go
read t
--- Comment #3 from dean at arctic dot org 2009-09-17 10:23 ---
(In reply to comment #2)
> (In reply to comment #1)
>
> > and in this case the "mov %rdx,%rax" could be "mov %edx,%eax" because of the
> > dominating movzbl.
>
> 32bit moves and other instructions _SIGN_EXTEND_ results to
--- Comment #2 from ubizjak at gmail dot com 2009-09-17 09:50 ---
(In reply to comment #1)
> and in this case the "mov %rdx,%rax" could be "mov %edx,%eax" because of the
> dominating movzbl.
32bit moves and other instructions _SIGN_EXTEND_ results to 64bits on x86_64.
--
ubizjak at
--- Comment #1 from dean at arctic dot org 2008-01-03 19:27 ---
oops i should have used an "unsigned long" for the tag rather than unsigned
long long, not that it matters much.
here's an expanded example showing another unnecessary REX:
extern unsigned long table[];
unsigned long foo(
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Severity|normal |enhancement
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34653