diff options
author | Bin Lu <bin.lu@arm.com> | 2020-01-29 04:33:06 -0500 |
---|---|---|
committer | Bin Lu <bin.lu@arm.com> | 2020-02-20 07:46:30 -0500 |
commit | a369c88c0c4ece5239855000d28df045111c1be7 (patch) | |
tree | dc3715ab5bec6b970270aaf09b4be2a6dc1cc19f /pkg/sentry/arch/signal_arm64.go | |
parent | 4cb55a7a3b09c430fa2b7197fdc7b84b7e88a6ed (diff) |
Lazy-fpsimd support patch series#1: add Arm64-fpsimd support to arch module
This patch defines the structures and
adds the implementations for fpsimd initialization.
Signed-off-by: Bin Lu <bin.lu@arm.com>
Diffstat (limited to 'pkg/sentry/arch/signal_arm64.go')
-rw-r--r-- | pkg/sentry/arch/signal_arm64.go | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/pkg/sentry/arch/signal_arm64.go b/pkg/sentry/arch/signal_arm64.go index 4f4cc46a8..28615f97f 100644 --- a/pkg/sentry/arch/signal_arm64.go +++ b/pkg/sentry/arch/signal_arm64.go @@ -30,14 +30,27 @@ type SignalContext64 struct { Sp uint64 Pc uint64 Pstate uint64 - _pad [8]byte // __attribute__((__aligned__(16))) - Reserved [4096]uint8 + _pad [8]byte // __attribute__((__aligned__(16))) + Fpsimd64 FpsimdContext // size = 528 + Reserved [3568]uint8 +} + +type aarch64Ctx struct { + Magic uint32 + Size uint32 +} + +type FpsimdContext struct { + Head aarch64Ctx + Fpsr uint32 + Fpcr uint32 + Vregs [64]uint64 // actually [32]uint128 } // UContext64 is equivalent to ucontext on arm64(arch/arm64/include/uapi/asm/ucontext.h). type UContext64 struct { Flags uint64 - Link *UContext64 + Link uint64 Stack SignalStack Sigset linux.SignalSet // glibc uses a 1024-bit sigset_t |