Bug
1890513: Directly invoke variadic native functions. r=jandem
CodeGenerator.cpp:
Split `emitCallNative` into two methods, so we can reuse it for `emitApplyNative`.
Also add some comments how `NativeExitFrameLayout` is constructed on the stack and
add an assertion that the native C++ function returned an object when constructing.
`emitCallNative` uses `setupAlignedABICall`, so we now need to align the Value
arguments, this happens through the new `emitAlignStackForApplyNative` method.
LIR-shared.h, Lowering.cpp:
The callee doesn't need to be stored which frees up one register, so we can
allocate an additional temp-register. This matches the approach taken for
`LCallNative`. The additional temp register is needed, because `emitCallNative`
requires four registers.
VMFunctions:
- Remove no longer used `InvokeNativeFunction`.
Differential Revision: https://phabricator.services.mozilla.com/
D207005