• H. Peter Anvin's avatar
    [x86 setup] Fix assembly constraints · 5593eaa8
    H. Peter Anvin authored
    Fix incorrect assembly constraints.  In particular, fix memory
    constraints used inside push..pop, which can cause invalid operation
    since gcc may generate %esp-relative references.
    
    Additionally:
    
    outl() should have "dN" not "dn".
    
    query_mca() shouldn't listen 16/32-bit registers in an 8-bit only
    context.
    
    has_eflag(): the "mask" is only used well after both the stack pointer
    and the output registers have been touched; this requires the output
    registers to be earlyclobbers (=&) and the input to exclude memory (so
    "ri", not "g").
    
    Thanks to Etienne Lorrain and Chuck Ebbert for prompting this review.
    
    Cc: Etienne Lorrain <etienne_lorrain@yahoo.fr>
    Cc: Chuck Ebbert <cebbert@redhat.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    5593eaa8
boot.h 6.25 KB