This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] x86-64 gcc generate wrong assembly instruction movabs for intel syntax


When compiles below testcase with gcc -masm=intel -O2

--cut here--
int test(){
    long *ptr = (long*)0xFFFF800000000000;

    *ptr = -1;

    return 0;
}
--cut here--

movabs is incorrectly translated into "mov [rax], -1", and causes
compile error "Error: ambiguous operand size for `mov' ".
It should be "mov QWORD PTR [rax], -1"

Bootstrap passed. Regression tested on x86_64-unknown-linux-gnu (pc).

2013-08-10  Perez Read <netfirewall@gmail.com>

        * config/i386/i386.md (*movabs<mode>_1) :  Add <ptrsize> PTR before
        operand 0 for intel asm alternative.

        * testsuite/gcc.target/i386/movabs-1.c : New test.

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]