fbt/x86: Extract arg1 for return probes from the trapframe

dtrace invop handlers have access to the whole trapframe, just use that
to extract %rax/%eax for return probes instead of relying on an
additional parameter to the handler.  No functional change intended.

MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Mark Johnston 2022-08-09 16:08:09 -04:00
parent f36b5d8a8c
commit a7aa3d4d75

View file

@ -61,19 +61,21 @@
#define FBT_RETURN "return"
int
fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t rval)
fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t scratch __unused)
{
solaris_cpu_t *cpu;
uintptr_t *stack;
uintptr_t arg0, arg1, arg2, arg3, arg4;
uintptr_t arg0, arg1, arg2, arg3, arg4, rval;
fbt_probe_t *fbt;
int8_t fbtrval;
#ifdef __amd64__
stack = (uintptr_t *)frame->tf_rsp;
rval = frame->tf_rax;
#else
/* Skip hardware-saved registers. */
stack = (uintptr_t *)frame->tf_isp + 3;
rval = frame->tf_eax;
#endif
cpu = &solaris_cpu[curcpu];