Skip to content
  • Richard Henderson's avatar
    tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts. · 2bece2c8
    Richard Henderson authored
    
    
    Some hosts (amd64, ia64) have an ABI that ignores the high bits
    of the 64-bit register when passing 32-bit arguments.  Others
    require the value to be properly sign-extended for the type.
    I.e. "int32_t" must be sign-extended and "uint32_t" must be
    zero-extended to 64-bits.
    
    To effect this, extend the "sizemask" parameter to tcg_gen_callN
    to include the signedness of the type of each parameter.  If the
    tcg target requires it, extend each 32-bit argument into a 64-bit
    temp and pass that to the function call.
    
    This ABI feature is required by sparc64, ppc64 and s390x.
    
    Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
    Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
    2bece2c8