shithub: bench9

ref: 6ae1a31f6bf06c488ff6d1bdf7af04e961c76225
dir: /b_amd64.s/

View raw version
#define RDTSCP WORD $0x010f; BYTE $0xf9

TEXT tstart(SB), 1, $0
	CPUID
	RDTSC
	MOVL AX, 0(RARG)
	MOVL DX, 4(RARG)
	RET

TEXT _tend(SB), 1, $0
	/* it needs MOVL CR0, AX; MOV AX, CR0 but it's userspace */
	RDTSC
	MOVL AX, 0(RARG)
	MOVL DX, 4(RARG)
	CPUID
	RET

TEXT _tendp(SB), 1, $0
	RDTSCP
	MOVL AX, 0(RARG)
	MOVL DX, 4(RARG)
	CPUID
	RET

TEXT cpuid(SB), 1, $0
	MOVL ax+8(FP), AX
	MOVL cx+16(FP), CX
	CPUID
	MOVL AX, 0(BP)
	MOVL BX, 4(BP)
	MOVL CX, 8(BP)
	MOVL DX, 12(BP)
	RET