AArch64: allocate small fixed args properly in varargs functions.
On Darwin, function arguments occupy their real size when passed on the stack (e.g. an i16 only consumes 2 bytes). This means that, even for fixed args in varargs calls we need to keep track of the original type being passed before any DAG/GISel promotions. Existing logic only applied this fix to the non-varargs case leading to mismatch between caller & callee in those situations. On Linux & Windows these arguments always occupy a 64-bit slot anyway so there's no special handling needed.
Loading
Please sign in to comment