[llvm-commits] [llvm] r57257 - /llvm/trunk/lib/Target/X86/X86InstrInfo.td
Evan Cheng
evan.cheng at apple.com
Tue Oct 7 13:34:36 PDT 2008
Hi Dale,
I think we ought to fix the bug in the local register allocator
instead. Is it not checking for aliases or sub-registers somewhere?
Thanks,
Evan
On Oct 7, 2008, at 11:54 AM, Dale Johannesen wrote:
> Author: johannes
> Date: Tue Oct 7 13:54:28 2008
> New Revision: 57257
>
> URL: http://llvm.org/viewvc/llvm-project?rev=57257&view=rev
> Log:
> Model hardwired inputs & outputs of x86 8-bit divides correctly.
> Fixes local RA miscompilation of gcc.c-torture/execute/20020904-1.c -
> O0.
>
>
> Modified:
> llvm/trunk/lib/Target/X86/X86InstrInfo.td
>
> Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.td?rev=57257&r1=57256&r2=57257&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Target/X86/X86InstrInfo.td (original)
> +++ llvm/trunk/lib/Target/X86/X86InstrInfo.td Tue Oct 7 13:54:28 2008
> @@ -728,7 +728,7 @@
> }
>
> // unsigned division/remainder
> -let Defs = [AX,EFLAGS], Uses = [AL,AH] in
> +let Defs = [AL,AH,EFLAGS], Uses = [AX] in
> def DIV8r : I<0xF6, MRM6r, (outs), (ins GR8:$src), // AX/
> r8 = AL,AH
> "div{b}\t$src", []>;
> let Defs = [AX,DX,EFLAGS], Uses = [AX,DX] in
> @@ -738,7 +738,7 @@
> def DIV32r : I<0xF7, MRM6r, (outs), (ins GR32:$src), //
> EDX:EAX/r32 = EAX,EDX
> "div{l}\t$src", []>;
> let mayLoad = 1 in {
> -let Defs = [AX,EFLAGS], Uses = [AL,AH] in
> +let Defs = [AL,AH,EFLAGS], Uses = [AX] in
> def DIV8m : I<0xF6, MRM6m, (outs), (ins i8mem:$src), // AX/
> [mem8] = AL,AH
> "div{b}\t$src", []>;
> let Defs = [AX,DX,EFLAGS], Uses = [AX,DX] in
> @@ -750,7 +750,7 @@
> }
>
> // Signed division/remainder.
> -let Defs = [AX,EFLAGS], Uses = [AL,AH] in
> +let Defs = [AL,AH,EFLAGS], Uses = [AX] in
> def IDIV8r : I<0xF6, MRM7r, (outs), (ins GR8:$src), // AX/
> r8 = AL,AH
> "idiv{b}\t$src", []>;
> let Defs = [AX,DX,EFLAGS], Uses = [AX,DX] in
> @@ -760,7 +760,7 @@
> def IDIV32r: I<0xF7, MRM7r, (outs), (ins GR32:$src), //
> EDX:EAX/r32 = EAX,EDX
> "idiv{l}\t$src", []>;
> let mayLoad = 1, mayLoad = 1 in {
> -let Defs = [AX,EFLAGS], Uses = [AL,AH] in
> +let Defs = [AL,AH,EFLAGS], Uses = [AX] in
> def IDIV8m : I<0xF6, MRM7m, (outs), (ins i8mem:$src), // AX/
> [mem8] = AL,AH
> "idiv{b}\t$src", []>;
> let Defs = [AX,DX,EFLAGS], Uses = [AX,DX] in
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list