NetBSD/sys/arch/alpha/include
kamil 847996952c Introduce _UC_MACHINE_FP() as a macro
_UC_MACHINE_FP() is a helper macro to extract from mcontext a frame pointer.

Don't rely on this interface as a compiler might strip frame pointer or
optimize it making this interface unreliable.


For hppa assume a small frame context, for larger frames FP might be located
in a different register (4 instead of 3).

For ia64 there is no strict frame pointer, and registers might rotate.
Reuse 79 following:

  ./gcc/config/ia64/ia64.h:#define HARD_FRAME_POINTER_REGNUM  LOC_REG (79)

Once ia64 will mature, this should be revisited.

A macro can encapsulate a real function for extracting Frame Pointer on
more complex CPUs / ABIs.


For the remaining CPUs, reuse standard register as defined in appropriate ABI.

The direct users of this macro are LLVM and GCC with Sanitizers.

Proposed on tech-userlevel@.

Sponsored by <The NetBSD Foundation>
2018-02-15 15:53:56 +00:00
..
alpha_cpu.h
alpha.h
ansi.h
aout_machdep.h
asm.h
autoconf.h
bswap.h
bus_defs.h
bus_funcs.h
bus_user.h
bwx.h
cdefs.h
cfbreg.h
cpu_counter.h
cpu.h
cpuconf.h
cpuvar.h
db_machdep.h Cleanup and clarify the ELFSIZE mess: 2017-11-06 03:47:45 +00:00
disklabel.h
ecoff_machdep.h
eisa_machdep.h
elf_machdep.h Cleanup and clarify the ELFSIZE mess: 2017-11-06 03:47:45 +00:00
endian_machdep.h
endian.h
fenv.h
float.h
fpu.h Explain our implementation choice for implementation-defined values 2017-10-17 00:26:35 +00:00
frame.h
ieee.h
ieeefp.h
int_const.h
int_fmtio.h
int_limits.h
int_mwgwtypes.h
int_types.h
intr.h
isa_machdep.h
isapnp_machdep.h
joystick.h
kbio.h
kcore.h
limits.h
loadfile_machdep.h
lock.h more const. 2017-09-17 00:01:07 +00:00
logout.h
Makefile
Makefile.inc
math.h
mcontext.h Introduce _UC_MACHINE_FP() as a macro 2018-02-15 15:53:56 +00:00
mutex.h
pal.h
param.h
pcb.h
pci_machdep.h
pio.h
pmap.h
pmc.h
proc.h
profile.h
prom.h
psl.h
pte.h
ptrace.h
reg.h
rpb.h
rwlock.h
setjmp.h
sigdebug.h
signal.h
sysarch.h
tc_machdep.h
types.h
userret.h
vmparam.h
vuid_event.h
wchar_limits.h
z8530var.h