[llvm] r255570 - [X86] Add relaxtion logic for ADC instructions.
Quentin Colombet via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 14 16:13:07 PST 2015
> On Dec 14, 2015, at 3:59 PM, Craig Topper <craig.topper at gmail.com> wrote:
>
> What about SBB?
Good point, we likely have the same problem.
I’ve checked and it is the case.
Fixed in revision 255583.
Good catch!
Thanks,
Q.
>
> On Mon, Dec 14, 2015 at 3:12 PM, Quentin Colombet via llvm-commits <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
> Author: qcolombet
> Date: Mon Dec 14 17:12:40 2015
> New Revision: 255570
>
> URL: http://llvm.org/viewvc/llvm-project?rev=255570&view=rev <http://llvm.org/viewvc/llvm-project?rev=255570&view=rev>
> Log:
> [X86] Add relaxtion logic for ADC instructions.
>
> Prior to this patch, we would wrongly stick to the variant with imm8 encoding
> even when the relocation could not fit that size.
>
> rdar://problem/23785506
>
> Modified:
> llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
> llvm/trunk/test/MC/ELF/relax-arith.s
>
> Modified: llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp?rev=255570&r1=255569&r2=255570&view=diff <http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp?rev=255570&r1=255569&r2=255570&view=diff>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp Mon Dec 14 17:12:40 2015
> @@ -204,6 +204,14 @@ static unsigned getRelaxedOpcodeArith(un
> case X86::ADD64ri8: return X86::ADD64ri32;
> case X86::ADD64mi8: return X86::ADD64mi32;
>
> + // ADC
> + case X86::ADC16ri8: return X86::ADC16ri;
> + case X86::ADC16mi8: return X86::ADC16mi;
> + case X86::ADC32ri8: return X86::ADC32ri;
> + case X86::ADC32mi8: return X86::ADC32mi;
> + case X86::ADC64ri8: return X86::ADC64ri32;
> + case X86::ADC64mi8: return X86::ADC64mi32;
> +
> // SUB
> case X86::SUB16ri8: return X86::SUB16ri;
> case X86::SUB16mi8: return X86::SUB16mi;
>
> Modified: llvm/trunk/test/MC/ELF/relax-arith.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/relax-arith.s?rev=255570&r1=255569&r2=255570&view=diff <http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/relax-arith.s?rev=255570&r1=255569&r2=255570&view=diff>
> ==============================================================================
> --- llvm/trunk/test/MC/ELF/relax-arith.s (original)
> +++ llvm/trunk/test/MC/ELF/relax-arith.s Mon Dec 14 17:12:40 2015
> @@ -123,3 +123,19 @@ bar:
> .section push,"x"
> pushw $foo
> push $foo
> +
> +// CHECK: Disassembly of section adc:
> +// CHECK-NEXT: adc:
> +// CHECK-NEXT: 0: 66 81 d3 00 00 adcw $0, %bx
> +// CHECK-NEXT: 5: 66 81 14 25 00 00 00 00 00 00 adcw $0, 0
> +// CHECK-NEXT: f: 81 d3 00 00 00 00 adcl $0, %ebx
> +// CHECK-NEXT: 15: 81 14 25 00 00 00 00 00 00 00 00 adcl $0, 0
> +// CHECK-NEXT: 20: 48 81 d3 00 00 00 00 adcq $0, %rbx
> +// CHECK-NEXT: 27: 48 81 14 25 00 00 00 00 00 00 00 00 adcq $0, 0
> + .section adc,"x"
> + adc $foo, %bx
> + adcw $foo, bar
> + adc $foo, %ebx
> + adcl $foo, bar
> + adc $foo, %rbx
> + adcq $foo, bar
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits>
>
>
>
> --
> ~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151214/89bb1f3e/attachment.html>
More information about the llvm-commits
mailing list