llvm/test/MC/ELF/relax-arith4.s
Michael Kuperstein bb803fd76e [X86] Fix incorrect/inefficient pushw encodings for x86-64 targets
Correctly support assembling "pushw $imm8" on x86-64 targets. 
Also some cleanup of the PUSH instructions (PUSH64i16 and PUSHi16 actually
represent the same instruction)

This fixes PR23996

Patch by: david.l.kreitzer@intel.com
Differential Revision: http://reviews.llvm.org/D10878

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241404 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-05 10:25:41 +00:00

26 lines
957 B
ArmAsm

// RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu %s -o - | llvm-objdump -d - | FileCheck %s
// Test for proper instruction relaxation behavior for the push $imm
// instruction forms. This is the 32-bit version of the push $imm tests from
// relax-arith.s and relax-arith2.s.
// CHECK: Disassembly of section push8:
// CHECK-NEXT: push8:
// CHECK-NEXT: 0: 66 6a 80 pushw $-128
// CHECK-NEXT: 3: 66 6a 7f pushw $127
// CHECK-NEXT: 6: 6a 80 pushl $-128
// CHECK-NEXT: 8: 6a 7f pushl $127
.section push8,"x"
pushw $-128
pushw $127
push $-128
push $127
// CHECK: Disassembly of section push32:
// CHECK-NEXT: push32:
// CHECK-NEXT: 0: 66 68 00 00 pushw $0
// CHECK-NEXT: 4: 68 00 00 00 00 pushl $0
.section push32,"x"
pushw $foo
push $foo