mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-27 11:20:58 +01:00
Fix userland program exception handling for powerpc64.
It appears that the linker will not handle 64-bit relocations at addresses that are not aligned to 8-byte boundaries. Prior to this change the line: .llong generictrap was aligned to a 4-byte address, and the linker replaced that with an 8-byte 0x0. Aligning that address to 8 bytes caused the linker to generate the proper relocation. As a follow-through, the dblow from trap_subr33.S used the code sequence 'lwz %r1, TRAP_GENTRAP(0)', so this reproduces the analogue of that for 64-bit.
This commit is contained in:
parent
62145ff347
commit
96f3c2adbe
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=285620
@ -842,11 +842,7 @@ CNAME(dblow):
|
||||
mflr %r1 /* save LR */
|
||||
mtsprg2 %r1 /* And then in SPRG2 */
|
||||
|
||||
nop /* Begin branching to generictrap */
|
||||
bl 9f
|
||||
.llong generictrap
|
||||
9: mflr %r1
|
||||
ld %r1,0(%r1)
|
||||
ld %r1, TRAP_GENTRAP(0) /* Get branch address */
|
||||
mtlr %r1
|
||||
li %r1, 0 /* How to get the vector from LR */
|
||||
blrl /* Branch to generictrap */
|
||||
|
Loading…
Reference in New Issue
Block a user