From: Russ Cox Date: Tue, 13 Aug 2013 01:02:55 +0000 (-0400) Subject: cmd/6g, cmd/8g: proginfo carry fixes X-Git-Tag: go1.2rc2~647 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9a0a59f171d0ae1defff35440c93e1a119289c29;p=gostls13.git cmd/6g, cmd/8g: proginfo carry fixes Bugs pointed out by cshapiro in CL 12637051. R=cshapiro CC=golang-dev https://golang.org/cl/12815043 --- diff --git a/src/cmd/6g/prog.c b/src/cmd/6g/prog.c index f3c4812654..b62dc63fe6 100644 --- a/src/cmd/6g/prog.c +++ b/src/cmd/6g/prog.c @@ -99,18 +99,18 @@ static ProgInfo progtable[ALAST] = { [ADECQ]= {SizeQ | RightRdwr}, [ADECW]= {SizeW | RightRdwr}, - [ADIVB]= {SizeB | LeftRead, AX, AX}, - [ADIVL]= {SizeL | LeftRead, AX|DX, AX|DX}, - [ADIVQ]= {SizeQ | LeftRead, AX|DX, AX|DX}, - [ADIVW]= {SizeW | LeftRead, AX|DX, AX|DX}, + [ADIVB]= {SizeB | LeftRead | SetCarry, AX, AX}, + [ADIVL]= {SizeL | LeftRead | SetCarry, AX|DX, AX|DX}, + [ADIVQ]= {SizeQ | LeftRead | SetCarry, AX|DX, AX|DX}, + [ADIVW]= {SizeW | LeftRead | SetCarry, AX|DX, AX|DX}, [ADIVSD]= {SizeD | LeftRead | RightRdwr}, [ADIVSS]= {SizeF | LeftRead | RightRdwr}, - [AIDIVB]= {SizeB | LeftRead, AX, AX}, - [AIDIVL]= {SizeL | LeftRead, AX|DX, AX|DX}, - [AIDIVQ]= {SizeQ | LeftRead, AX|DX, AX|DX}, - [AIDIVW]= {SizeW | LeftRead, AX|DX, AX|DX}, + [AIDIVB]= {SizeB | LeftRead | SetCarry, AX, AX}, + [AIDIVL]= {SizeL | LeftRead | SetCarry, AX|DX, AX|DX}, + [AIDIVQ]= {SizeQ | LeftRead | SetCarry, AX|DX, AX|DX}, + [AIDIVW]= {SizeW | LeftRead | SetCarry, AX|DX, AX|DX}, [AIMULB]= {SizeB | LeftRead | SetCarry, AX, AX}, [AIMULL]= {SizeL | LeftRead | ImulAXDX | SetCarry}, @@ -262,10 +262,10 @@ static ProgInfo progtable[ALAST] = { [ASUBSD]= {SizeD | LeftRead | RightRdwr}, [ASUBSS]= {SizeF | LeftRead | RightRdwr}, - [ATESTB]= {SizeB | LeftRead | RightRead}, - [ATESTL]= {SizeL | LeftRead | RightRead}, - [ATESTQ]= {SizeQ | LeftRead | RightRead}, - [ATESTW]= {SizeW | LeftRead | RightRead}, + [ATESTB]= {SizeB | LeftRead | RightRead | SetCarry}, + [ATESTL]= {SizeL | LeftRead | RightRead | SetCarry}, + [ATESTQ]= {SizeQ | LeftRead | RightRead | SetCarry}, + [ATESTW]= {SizeW | LeftRead | RightRead | SetCarry}, [AUCOMISD]= {SizeD | LeftRead | RightRead}, [AUCOMISS]= {SizeF | LeftRead | RightRead}, diff --git a/src/cmd/8g/prog.c b/src/cmd/8g/prog.c index ca877ad128..05d69853b2 100644 --- a/src/cmd/8g/prog.c +++ b/src/cmd/8g/prog.c @@ -87,9 +87,9 @@ static ProgInfo progtable[ALAST] = { [ADECL]= {SizeL | RightRdwr}, [ADECW]= {SizeW | RightRdwr}, - [ADIVB]= {SizeB | LeftRead, AX, AX}, - [ADIVL]= {SizeL | LeftRead, AX|DX, AX|DX}, - [ADIVW]= {SizeW | LeftRead, AX|DX, AX|DX}, + [ADIVB]= {SizeB | LeftRead | SetCarry, AX, AX}, + [ADIVL]= {SizeL | LeftRead | SetCarry, AX|DX, AX|DX}, + [ADIVW]= {SizeW | LeftRead | SetCarry, AX|DX, AX|DX}, [ADIVSD]= {SizeD | LeftRead | RightRdwr}, [ADIVSS]= {SizeF | LeftRead | RightRdwr}, @@ -137,9 +137,9 @@ static ProgInfo progtable[ALAST] = { [AFMULDP]= {SizeD | LeftAddr | RightRdwr}, [AFMULF]= {SizeF | LeftAddr | RightRdwr}, - [AIDIVB]= {SizeB | LeftRead, AX, AX}, - [AIDIVL]= {SizeL | LeftRead, AX|DX, AX|DX}, - [AIDIVW]= {SizeW | LeftRead, AX|DX, AX|DX}, + [AIDIVB]= {SizeB | LeftRead | SetCarry, AX, AX}, + [AIDIVL]= {SizeL | LeftRead | SetCarry, AX|DX, AX|DX}, + [AIDIVW]= {SizeW | LeftRead | SetCarry, AX|DX, AX|DX}, [AIMULB]= {SizeB | LeftRead | SetCarry, AX, AX}, [AIMULL]= {SizeL | LeftRead | ImulAXDX | SetCarry}, @@ -282,9 +282,9 @@ static ProgInfo progtable[ALAST] = { [ASUBSD]= {SizeD | LeftRead | RightRdwr}, [ASUBSS]= {SizeF | LeftRead | RightRdwr}, - [ATESTB]= {SizeB | LeftRead | RightRead}, - [ATESTL]= {SizeL | LeftRead | RightRead}, - [ATESTW]= {SizeW | LeftRead | RightRead}, + [ATESTB]= {SizeB | LeftRead | RightRead | SetCarry}, + [ATESTL]= {SizeL | LeftRead | RightRead | SetCarry}, + [ATESTW]= {SizeW | LeftRead | RightRead | SetCarry}, [AUCOMISD]= {SizeD | LeftRead | RightRead}, [AUCOMISS]= {SizeF | LeftRead | RightRead},