mirror of
https://github.com/golang/go
synced 2024-11-21 23:24:41 -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:
parent
bf10982739
commit
e5009e29ea
@ -260,7 +260,7 @@ spec8: /* CMPPS/CMPPD */
|
|||||||
{
|
{
|
||||||
$$.from = $1;
|
$$.from = $1;
|
||||||
$$.to = $3;
|
$$.to = $3;
|
||||||
$$.from.offset = $5;
|
$$.to.offset = $5;
|
||||||
}
|
}
|
||||||
|
|
||||||
spec9: /* shufl */
|
spec9: /* shufl */
|
||||||
|
@ -695,7 +695,7 @@ static Optable optab0F[256]=
|
|||||||
[0xB1] RM,0, "CMPXCHG%S %r,%e",
|
[0xB1] RM,0, "CMPXCHG%S %r,%e",
|
||||||
[0xC0] RMB,0, "XADDB %r,%e",
|
[0xC0] RMB,0, "XADDB %r,%e",
|
||||||
[0xC1] RM,0, "XADD%S %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",
|
[0xC3] RM,0, "MOVNTI%S %r,%e",
|
||||||
[0xC6] RM,Ib, "SHUF%s %i,%x,%X",
|
[0xC6] RM,Ib, "SHUF%s %i,%x,%X",
|
||||||
[0xC8] 0,0, "BSWAP AX",
|
[0xC8] 0,0, "BSWAP AX",
|
||||||
@ -2074,6 +2074,7 @@ pea(Instr *ip)
|
|||||||
static void
|
static void
|
||||||
prinstr(Instr *ip, char *fmt)
|
prinstr(Instr *ip, char *fmt)
|
||||||
{
|
{
|
||||||
|
int sharp;
|
||||||
vlong v;
|
vlong v;
|
||||||
|
|
||||||
if (ip->prefix)
|
if (ip->prefix)
|
||||||
@ -2083,7 +2084,12 @@ prinstr(Instr *ip, char *fmt)
|
|||||||
*ip->curr++ = *fmt;
|
*ip->curr++ = *fmt;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
switch(*++fmt){
|
sharp = 0;
|
||||||
|
if(*++fmt == '#') {
|
||||||
|
sharp = 1;
|
||||||
|
++fmt;
|
||||||
|
}
|
||||||
|
switch(*fmt){
|
||||||
case '%':
|
case '%':
|
||||||
*ip->curr++ = '%';
|
*ip->curr++ = '%';
|
||||||
break;
|
break;
|
||||||
@ -2107,7 +2113,8 @@ prinstr(Instr *ip, char *fmt)
|
|||||||
bprint(ip,"%s", ONAME(ip));
|
bprint(ip,"%s", ONAME(ip));
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
bprint(ip, "$");
|
if(!sharp)
|
||||||
|
bprint(ip, "$");
|
||||||
v = ip->imm;
|
v = ip->imm;
|
||||||
if(ip->rex & REXW)
|
if(ip->rex & REXW)
|
||||||
v = ip->imm64;
|
v = ip->imm64;
|
||||||
|
Loading…
Reference in New Issue
Block a user