http://llvm.org/bugs/show_bug.cgi?id=18414

            Bug ID: 18414
           Summary: [MC assembler] pushw instruction incorrectly relaxed
                    to pushl
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

r135303, which fixed PR10370, added an incorrect relaxation of PUSHi16 to
PUSHi32. These instructions are not equivalent because they modify %esp by
different amounts. It isn't just about the size of the immediate value; they
really do push a *word* or a *dword* onto the stack, respectively.

Test case:

// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o %t
// RUN: llvm-objdump -d %t | FileCheck %s

.global foo    
pushw $foo // CHECK: pushw

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to