• Angus Gratton's avatar
    py/nlrx64: Mark nlr_push() as naked function when possible. · fa685239
    Angus Gratton authored
    
    
    Supported from GCC 8 and up, and Compiler Explorer suggests it works as
    expected with Clang since 3.6 (2014).
    
    - Fixes situation where building embedded MicroPython with -O0 and
      MICROPY_NLR_X64 crashes at runtime (due to nlr_push pushing the
      frame pointer register EBP). Closes #12421.
    
    - Allows removing the macOS tweak to undo pushing EBP onto the stack
      in the generated function prelude.
    Signed-off-by: default avatarAngus Gratton <angus@redyak.com.au>
    fa685239
nlrx64.c 4.91 KB