1
0
mirror of https://github.com/golang/go synced 2024-11-21 14:24:44 -07:00

6a: assemble CMPPD as 6l expects

libmach: disassemble CMPPD as 6a expects

R=ken2
CC=Charlie Dorian, golang-dev
https://golang.org/cl/1704046
This commit is contained in:
Russ Cox 2010-07-01 12:36:29 -07:00
parent bf10982739
commit e5009e29ea
2 changed files with 11 additions and 4 deletions

View File

@ -260,7 +260,7 @@ spec8: /* CMPPS/CMPPD */
{
$$.from = $1;
$$.to = $3;
$$.from.offset = $5;
$$.to.offset = $5;
}
spec9: /* shufl */

View File

@ -695,7 +695,7 @@ static Optable optab0F[256]=
[0xB1] RM,0, "CMPXCHG%S %r,%e",
[0xC0] RMB,0, "XADDB %r,%e",
[0xC1] RM,0, "XADD%S %r,%e",
[0xC2] RM,Ib, "CMP%s %i,%x,%X",
[0xC2] RM,Ib, "CMP%s %x,%X,%#i",
[0xC3] RM,0, "MOVNTI%S %r,%e",
[0xC6] RM,Ib, "SHUF%s %i,%x,%X",
[0xC8] 0,0, "BSWAP AX",
@ -2074,6 +2074,7 @@ pea(Instr *ip)
static void
prinstr(Instr *ip, char *fmt)
{
int sharp;
vlong v;
if (ip->prefix)
@ -2083,7 +2084,12 @@ prinstr(Instr *ip, char *fmt)
*ip->curr++ = *fmt;
continue;
}
switch(*++fmt){
sharp = 0;
if(*++fmt == '#') {
sharp = 1;
++fmt;
}
switch(*fmt){
case '%':
*ip->curr++ = '%';
break;
@ -2107,7 +2113,8 @@ prinstr(Instr *ip, char *fmt)
bprint(ip,"%s", ONAME(ip));
break;
case 'i':
bprint(ip, "$");
if(!sharp)
bprint(ip, "$");
v = ip->imm;
if(ip->rex & REXW)
v = ip->imm64;