Skip to content

Conversation

pull[bot]
Copy link

@pull pull bot commented Dec 22, 2020

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

TNorthover and others added 4 commits December 21, 2020 10:50
This extends any frame record created in the function to include that
parameter, passed in X22.

The new record looks like [X22, FP, LR] in memory, and FP is stored with 0b0001
stored in bits 63:60 (CodeGen assumes they are 0b0000 in normal operation). The
effect of this is that tools walking the stack should expect to see one of
three values there:

  * 0b0000 => a normal, non-extended record with just [FP, LR]
  * 0b0001 => the extended record [X22, FP, LR]
  * 0b1111 => kernel space, and a non-extended record.

All other values are currently reserved.

If compiling for arm64e this context pointer is address-discriminated with the
discriminator 0xc31a and the DB (process-specific) key.

There is also an "i8** @llvm.swift.async.context.addr()" intrinsic providing
front-ends access to this slot (and forcing its creation initialized to nullptr
if necessary).
This translates to "swiftasync" LLVM attribute.
@pull pull bot merged commit 15462e0 into swiftwasm-release/5.4 Dec 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant