Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update asm blocks in workaround for framepointer clobber miscompilation #14

Merged
merged 3 commits into from
Jun 19, 2020

Commits on Jun 17, 2020

  1. Move away from llvm_asm to new asm.

    In my opinion, this makes the constraints a _lot_ easier to read, and
    gets us things like noreturn. (Plus, it moves us off a deprecated
    feature whose days are numbered.)
    
    asm has opinions about trying to use r11. These opinions are misguided:
    rust-lang/rust#73450
    
    However, we respect them by manually moving values in and out of r11 in
    the asm sequences.
    cbiffle committed Jun 17, 2020
    Configuration menu
    Copy the full SHA
    e81e77c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3d44fe4 View commit details
    Browse the repository at this point in the history
  3. userlib: alter handling of r7 in workaround

    This completes the sequence of workarounds for:
    rust-lang/rust#73450
    
    r7 is the frame pointer. asm! cannot reason about clobbers of r7. It
    tries to statically refuse it, but statically refuses r11 instead.
    
    This avoids clobbering r7.
    cbiffle committed Jun 17, 2020
    Configuration menu
    Copy the full SHA
    619566c View commit details
    Browse the repository at this point in the history