Bobby Bingham
55168fcb18
ppc32/64: simplify storage of stack parameters
...
The switch statement is simpler as an if/else, and removing the argp
variable makes the code more symmetric between the register and stack
parameter cases.
2019-04-05 14:18:20 -05:00
Bobby Bingham
b500b054c7
ppc32/64: don't store uc_link on the stack
...
This was previously stored either in the CR (ppc64) or LR (ppc32) save
area of the stack, or to one of the parameter save slots.
In either case, the saved value was unused. This value is also passed
to __start_context via r31, so there's no need to pass it on the stack.
2019-04-05 14:15:49 -05:00
Bobby Bingham
b9bd4045fb
ppc32/64: fix back chain pointer
...
The ABI states that sp[0] should point to the previous stack frame, or be
zero if there is no previous stack frame. makecontext previously set this
slot to point to the __start_context function, rather than to a valid
stack frame.
2019-04-05 14:15:49 -05:00
Bobby Bingham
b6a9b5e279
ppc32: fix stack alignment
...
The stack should be 16-byte aligned, not 8 mod 16.
2019-04-05 14:15:44 -05:00
A. Wilcox
6046eb47e4
Reorder registers in other x86_64 assembler files
...
This fixes the previous commit which changed the register order in
swapcontext only, which caused setcontext to subtly corrupt the stack.
2018-07-19 17:18:19 -05:00
Timo Teräs
790ed28aff
fix x86_64 register order for swapcontext
...
rbp and rsi were reversed causing argument passing to fail since
rsi is used to pass 2nd argument.
fixes #9
2018-07-18 15:47:27 +03:00
William Pitcock
a76df6b81a
arch: add s390x port
2018-02-15 05:54:17 +00:00
William Pitcock
f370b25ffc
ppc64: trampoline: cleanups
2018-02-15 04:36:47 +00:00
William Pitcock
f4d92bb7bd
ppc: trampoline: cleanups
2018-02-15 04:36:36 +00:00
William Pitcock
0622245f06
x86_64: trampoline: do same cleanups as in x86
2018-02-15 04:34:37 +00:00
William Pitcock
ef2fa49912
x86: trampoline: fix GOT clobbering, pointed out by fabled
2018-02-15 04:32:16 +00:00
William Pitcock
556da6ce99
x86/x86_64: getcontext: no need to restore %ecx or %rcx
2018-02-14 05:12:09 +00:00
William Pitcock
0143bbac98
x86: trampoline: kill textrel
2018-02-14 03:37:25 +00:00
William Pitcock
71979e9cf6
arch: ppc64: now working
2018-02-06 08:05:53 +00:00
William Pitcock
9e5aba6b48
arch: add ppc64 port does not work yet
2018-02-06 06:19:44 +00:00
William Pitcock
f3fe8ea781
arch: ppc: new port
2018-02-02 18:46:21 +00:00
William Pitcock
ee1526c903
arch: add x86 port
2018-02-01 01:26:34 +00:00
William Pitcock
13283f5eba
arch: add aarch64 port
2018-01-31 21:23:18 +00:00
William Pitcock
247f30400c
arch: arm: add armv6+ port
2018-01-31 04:11:46 +00:00
William Pitcock
da10e5a66d
implement ucontext functions on x86_64
2018-01-30 03:41:02 +00:00
William Pitcock
6062fc83b1
don't bother with glibc stuff afterall, kernel defines ABI to use
2018-01-29 21:50:49 +00:00