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

fix extern "aapcs" fn #37814

Merged
merged 1 commit into from
Nov 19, 2016
Merged

fix extern "aapcs" fn #37814

merged 1 commit into from
Nov 19, 2016

Commits on Nov 16, 2016

  1. fix extern "aapcs" fn

    to actually use the AAPCS calling convention
    
    closes rust-lang#37810
    
    This is technically a [breaking-change] because it changes the ABI of
    `extern "aapcs"` functions that (a) involve `f32`/`f64` arguments/return
    values and (b) are compiled for arm-eabihf targets from
    "aapcs-vfp" (wrong) to "aapcs" (correct).
    
    Appendix:
    
    What these ABIs mean?
    
    - In the "aapcs-vfp" ABI or "hard float" calling convention: Floating
    point values are passed/returned through FPU registers (s0, s1, d0, etc.)
    
    - Whereas, in the "aapcs" ABI or "soft float" calling convention:
    Floating point values are passed/returned through general purpose
    registers (r0, r1, etc.)
    
    Mixing these ABIs can cause problems if the caller assumes that the
    routine is using one of these ABIs but it's actually using the other
    one.
    Jorge Aparicio committed Nov 16, 2016
    Configuration menu
    Copy the full SHA
    456ceba View commit details
    Browse the repository at this point in the history