From: Russ Cox Date: Mon, 26 Apr 2010 08:09:19 +0000 (-0700) Subject: libmach: disassemble MOVLQZX correctly X-Git-Tag: weekly.2010-04-27~44 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=43409ed2c66cdf739334e68472db57885d5ca0c1;p=gostls13.git libmach: disassemble MOVLQZX correctly R=ken2 CC=golang-dev https://golang.org/cl/1007041 --- diff --git a/src/libmach/8db.c b/src/libmach/8db.c index dfa87da29d..ba14dfc3c3 100644 --- a/src/libmach/8db.c +++ b/src/libmach/8db.c @@ -1131,7 +1131,7 @@ static Optable optabFF[8] = [0x06] 0,0, "PUSHL %e", }; -static Optable optable[256+1] = +static Optable optable[256+2] = { [0x00] RMB,0, "ADDB %r,%e", [0x01] RM,0, "ADD%S %r,%e", @@ -1387,6 +1387,7 @@ static Optable optable[256+1] = [0xfe] RMOPB,0, optabFE, [0xff] RMOP,0, optabFF, [0x100] RM,0, "MOVLQSX %e,%r", +[0x101] RM,0, "MOVLQZX %e,%r", }; /* @@ -1590,7 +1591,10 @@ newop: return 0; } if(c == 0x63){ - op = &obase[0x100]; /* MOVLQSX */ + if(ip->rex&REXW) + op = &obase[0x100]; /* MOVLQSX */ + else + op = &obase[0x101]; /* MOVLQZX */ goto hack; } }