mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
kvm: fix tests on arm64
This commit is contained in:
@@ -30,8 +30,8 @@ import (
|
||||
func TLSWorks() bool
|
||||
|
||||
// SetTestTarget sets the rip appropriately.
|
||||
func SetTestTarget(regs *arch.Registers, fn func()) {
|
||||
regs.Pc = uint64(reflect.ValueOf(fn).Pointer())
|
||||
func SetTestTarget(regs *arch.Registers, fn uintptr) {
|
||||
regs.Pc = uint64(fn)
|
||||
}
|
||||
|
||||
// SetTouchTarget sets rax appropriately.
|
||||
|
||||
@@ -28,6 +28,11 @@ TEXT ·Getpid(SB),NOSPLIT,$0
|
||||
SVC
|
||||
RET
|
||||
|
||||
TEXT ·AddrOfGetpid(SB),NOSPLIT,$0-8
|
||||
MOVD $·Getpid(SB), R0
|
||||
MOVD R0, ret+0(FP)
|
||||
RET
|
||||
|
||||
TEXT ·Touch(SB),NOSPLIT,$0
|
||||
start:
|
||||
MOVD 0(R8), R1
|
||||
@@ -35,21 +40,41 @@ start:
|
||||
SVC
|
||||
B start
|
||||
|
||||
TEXT ·AddrOfTouch(SB),NOSPLIT,$0-8
|
||||
MOVD $·Touch(SB), R0
|
||||
MOVD R0, ret+0(FP)
|
||||
RET
|
||||
|
||||
TEXT ·HaltLoop(SB),NOSPLIT,$0
|
||||
start:
|
||||
HLT
|
||||
B start
|
||||
|
||||
TEXT ·AddOfHaltLoop(SB),NOSPLIT,$0-8
|
||||
MOVD $·HaltLoop(SB), R0
|
||||
MOVD R0, ret+0(FP)
|
||||
RET
|
||||
|
||||
// This function simulates a loop of syscall.
|
||||
TEXT ·SyscallLoop(SB),NOSPLIT,$0
|
||||
start:
|
||||
SVC
|
||||
B start
|
||||
|
||||
TEXT ·AddrOfSyscallLoop(SB),NOSPLIT,$0-8
|
||||
MOVD $·SyscallLoop(SB), R0
|
||||
MOVD R0, ret+0(FP)
|
||||
RET
|
||||
|
||||
TEXT ·SpinLoop(SB),NOSPLIT,$0
|
||||
start:
|
||||
B start
|
||||
|
||||
TEXT ·AddrOfSpinLoop(SB),NOSPLIT,$0-8
|
||||
MOVD $·SpinLoop(SB), R0
|
||||
MOVD R0, ret+0(FP)
|
||||
RET
|
||||
|
||||
TEXT ·TLSWorks(SB),NOSPLIT,$0-8
|
||||
NO_LOCAL_POINTERS
|
||||
MOVD $0x6789, R5
|
||||
@@ -125,6 +150,11 @@ TEXT ·TwiddleRegsSyscall(SB),NOSPLIT,$0
|
||||
SVC
|
||||
RET // never reached
|
||||
|
||||
TEXT ·AddrOfTwiddleRegsSyscall(SB),NOSPLIT,$0-8
|
||||
MOVD $·TwiddleRegsSyscall(SB), R0
|
||||
MOVD R0, ret+0(FP)
|
||||
RET
|
||||
|
||||
TEXT ·TwiddleRegsFault(SB),NOSPLIT,$0
|
||||
TWIDDLE_REGS()
|
||||
MSR R10, TPIDR_EL0
|
||||
@@ -132,3 +162,8 @@ TEXT ·TwiddleRegsFault(SB),NOSPLIT,$0
|
||||
// Branch to Register branches unconditionally to an address in <Rn>.
|
||||
JMP (R6) // <=> br x6, must fault
|
||||
RET // never reached
|
||||
|
||||
TEXT ·AddrOfTwiddleRegsFault(SB),NOSPLIT,$0-8
|
||||
MOVD $·TwiddleRegsFault(SB), R0
|
||||
MOVD R0, ret+0(FP)
|
||||
RET
|
||||
|
||||
Reference in New Issue
Block a user