From 43409ed2c66cdf739334e68472db57885d5ca0c1 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 26 Apr 2010 01:09:19 -0700 Subject: [PATCH] libmach: disassemble MOVLQZX correctly R=ken2 CC=golang-dev https://golang.org/cl/1007041 --- src/libmach/8db.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libmach/8db.c b/src/libmach/8db.c index dfa87da29df..ba14dfc3c37 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; } }