Save xmm registers + r9 r10 r8 in kernel

hello i was wondering is this correct way save xmm 0 1 2 registers in kernel ? thanks !

 pushfq
sub rsp, 60h


mov [rsp+00h], r8
mov [rsp+08h], r9
mov [rsp+10h], r10


movaps [rsp+30h], xmm0
movaps [rsp+40h], xmm1
movaps [rsp+50h], xmm2


xorps xmm0, xmm0
cvtsi2sd xmm0, r8
xorps xmm2, xmm2
cvtsi2sd xmm2, r9
xorps xmm1, xmm1
cvtsi2sd xmm1, r10
divsd xmm2, xmm1
addsd xmm0, xmm2


movaps xmm0, [rsp+30h]
movaps xmm1, [rsp+40h]
movaps xmm2, [rsp+50h]

mov r8, [rsp+00h]
mov r9, [rsp+08h]
mov r10, [rsp+10h]

add rsp, 60h
popfq

The x64 ABI considers the registers RAX, RCX, RDX, R8, R9, R10, R11, and XMM0-XMM5 volatile. When present, the upper portions of YMM0-YMM15 and ZMM0-ZMM15 are also volatile.

x64 calling convention | Microsoft Learn