mirror of
https://github.com/golang/go
synced 2024-11-24 23:17:57 -07:00
8a, 8l: implement support for RDTSC instruction.
Also modify runtime/asm_386.s to use it. R=rsc CC=golang-dev https://golang.org/cl/5634043
This commit is contained in:
parent
7ac03695f8
commit
6392b43a15
@ -445,6 +445,7 @@ struct
|
||||
"RCRB", LTYPE3, ARCRB,
|
||||
"RCRL", LTYPE3, ARCRL,
|
||||
"RCRW", LTYPE3, ARCRW,
|
||||
"RDTSC", LTYPE0, ARDTSC,
|
||||
"REP", LTYPE0, AREP,
|
||||
"REPN", LTYPE0, AREPN,
|
||||
"RET", LTYPE0, ARET,
|
||||
|
@ -396,6 +396,8 @@ enum as
|
||||
ACMPXCHGW,
|
||||
ACMPXCHG8B,
|
||||
|
||||
ARDTSC,
|
||||
|
||||
AXADDB,
|
||||
AXADDL,
|
||||
AXADDW,
|
||||
|
@ -707,6 +707,8 @@ Optab optab[] =
|
||||
{ ACMPXCHGW, yrl_ml, Pm, 0xb1 },
|
||||
{ ACMPXCHG8B, yscond, Pm, 0xc7,(01) },
|
||||
|
||||
{ ARDTSC, ynone, Pm, 0x31 },
|
||||
|
||||
{ AXADDB, yrb_mb, Pb, 0x0f,0xc0 },
|
||||
{ AXADDL, yrl_ml, Pm, 0xc1 },
|
||||
{ AXADDW, yrl_ml, Pe, 0x0f,0xc1 },
|
||||
|
@ -527,7 +527,7 @@ TEXT runtime·getcallersp(SB), 7, $0
|
||||
// int64 runtime·cputicks(void), so really
|
||||
// void runtime·cputicks(int64 *ticks)
|
||||
TEXT runtime·cputicks(SB),7,$0
|
||||
BYTE $0x0F; BYTE $0x31; // RDTSC; not supported by 8a
|
||||
RDTSC
|
||||
MOVL ret+0(FP), DI
|
||||
MOVL AX, 0(DI)
|
||||
MOVL DX, 4(DI)
|
||||
|
Loading…
Reference in New Issue
Block a user