shithub: bench9

ref: 03bf5f5359c5a4919b97bc5f7843341f4a43f42d
dir: bench9/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