Page MenuHomeFreeBSD

Use uintptr_t instead of uint64_t for pointers in stack frames.
ClosedPublic

Authored by jhb on Aug 7 2020, 4:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 26, 3:10 AM
Unknown Object (File)
Mar 20 2024, 3:53 PM
Unknown Object (File)
Mar 7 2024, 11:57 PM
Unknown Object (File)
Dec 20 2023, 7:08 AM
Unknown Object (File)
Dec 12 2023, 9:06 AM
Unknown Object (File)
Oct 29 2023, 1:49 AM
Unknown Object (File)
Sep 8 2023, 1:55 AM
Unknown Object (File)
Sep 8 2023, 1:52 AM
Subscribers

Details

Test Plan
  • used in CheriBSD with a kernel which has CHERI capabilities as pointers (so uintptr_t is 128 bits and pointers in the stack are that size, etc.)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Aug 7 2020, 4:12 PM
jhb created this revision.

In theory this would be more RV32 friendly as well, though I don't really think we need a FreeBSD/riscv32.

sys/riscv/riscv/unwind.c
54 ↗(On Diff #75575)

Note that we are probably using a compressed instruction (c.jalr) so subtracting 4 rather than 2 is not always correct, but it's probably close enough as the intent is to get the right symbol name for tail calls where the saved RA may in fact point to the start of a different function.

This revision is now accepted and ready to land.Aug 9 2020, 3:09 PM