Commit 3d462449 authored by Russ Cox's avatar Russ Cox

8a, 8l: add PREFETCH instructions

R=ken2
CC=golang-dev
https://golang.org/cl/5992082
parent 35d260fa
......@@ -667,6 +667,10 @@ struct
"MFENCE", LTYPE0, AMFENCE,
"SFENCE", LTYPE0, ASFENCE,
"EMMS", LTYPE0, AEMMS,
"PREFETCHT0", LTYPE2, APREFETCHT0,
"PREFETCHT1", LTYPE2, APREFETCHT1,
"PREFETCHT2", LTYPE2, APREFETCHT2,
"PREFETCHNTA", LTYPE2, APREFETCHNTA,
0
};
......
......@@ -451,6 +451,11 @@ enum as
ASFENCE,
AEMMS,
APREFETCHT0,
APREFETCHT1,
APREFETCHT2,
APREFETCHNTA,
ALAST
};
......
......@@ -349,6 +349,11 @@ uchar ysvrs[] =
Ym, Ynone, Zm_o, 2,
0
};
uchar yprefetch[] =
{
Ym, Ynone, Zm_o, 2,
0,
};
Optab optab[] =
/* as, ytab, andproto, opcode */
......@@ -761,5 +766,10 @@ Optab optab[] =
{ AEMMS, ynone, Pm, 0x77 },
{ APREFETCHT0, yprefetch, Pm, 0x18,(01) },
{ APREFETCHT1, yprefetch, Pm, 0x18,(02) },
{ APREFETCHT2, yprefetch, Pm, 0x18,(03) },
{ APREFETCHNTA, yprefetch, Pm, 0x18,(00) },
0
};
......@@ -417,8 +417,7 @@ TEXT runtime·atomicstore64(SB), 7, $0
TEXT runtime·prefetch(SB), 7, $0
MOVL 4(SP), AX
// PREFETCHNTA (AX)
BYTE $0x0f; BYTE $0x18; BYTE $0x00
PREFETCHNTA (AX)
RET
// void jmpdefer(fn, sp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment