• Heiko Carstens's avatar
    s390/fpu: provide and use vlm and vstm inline assemblies · 3a5866a0
    Heiko Carstens authored
    Instead of open-coding vlm and vstm inline assemblies at several locations,
    provide an fpu_* function for each instruction, and use them in the new
    save_vx_regs() and load_vx_regs() helper functions.
    
    Note that "O" and "R" inline assembly operand modifiers are used in order
    to pass the displacement and base register of the memory operands to the
    existing VLM and VSTM macros. The two operand modifiers are not available
    for clang. Therefore provide two variants of each inline assembly.
    
    The clang variant always uses and clobbers general purpose register 1, like
    in the previous inline assemblies, so it can be used as base register with
    a zero displacement. This generates slightly less efficient code, but can
    be removed as soon as clang has support for the used operand modifiers.
    Reviewed-by: default avatarClaudio Imbrenda <imbrenda@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    3a5866a0
fpu.h 5.6 KB