diff --git a/llvm/lib/Target/X86/X86AsmBackend.cpp b/llvm/lib/Target/X86/X86AsmBackend.cpp index 4d7d96dcb36b..9b556a55efd9 100644 --- a/llvm/lib/Target/X86/X86AsmBackend.cpp +++ b/llvm/lib/Target/X86/X86AsmBackend.cpp @@ -194,6 +194,9 @@ static unsigned getRelaxedOpcodeArith(unsigned Op) { // PUSH case X86::PUSHi8: return X86::PUSHi32; + case X86::PUSHi16: return X86::PUSHi32; + case X86::PUSH64i8: return X86::PUSH64i32; + case X86::PUSH64i16: return X86::PUSH64i32; } } diff --git a/llvm/test/MC/ELF/relocation.s b/llvm/test/MC/ELF/relocation.s index 7db2248adfbd..2760232a5a80 100644 --- a/llvm/test/MC/ELF/relocation.s +++ b/llvm/test/MC/ELF/relocation.s @@ -92,23 +92,23 @@ bar: // CHECK: # Relocation 0x0000000b // CHECK-NEXT: (('r_offset', 0x0000004e) // CHECK-NEXT: ('r_sym', 0x00000002) -// CHECK-NEXT: ('r_type', 0x0000000e) +// CHECK-NEXT: ('r_type', 0x0000000b) // CHECK-NEXT: ('r_addend', 0x00000000) // CHECK: # Relocation 0x0000000c -// CHECK-NEXT: (('r_offset', 0x00000052) +// CHECK-NEXT: (('r_offset', 0x00000055) // CHECK-NEXT: ('r_sym', 0x00000006) // CHECK-NEXT: ('r_type', 0x00000002) // CHECK-NEXT: ('r_addend', 0xfffffffc) // CHECK: # Relocation 0x0000000d -// CHECK-NEXT: (('r_offset', 0x00000059) +// CHECK-NEXT: (('r_offset', 0x0000005c) // CHECK-NEXT: ('r_sym', 0x00000006) // CHECK-NEXT: ('r_type', 0x00000002) -// CHECK-NEXT: ('r_addend', 0x00000059) +// CHECK-NEXT: ('r_addend', 0x0000005c) // CHECK: # Relocation 0x0000000e -// CHECK-NEXT: (('r_offset', 0x00000060) +// CHECK-NEXT: (('r_offset', 0x00000063) // CHECK-NEXT: ('r_sym', 0x00000002) // CHECK-NEXT: ('r_type', 0x0000000b) // CHECK-NEXT: ('r_addend', 0x00000000)