Issue #1905 - Part 3f - Collection of fixes connecting ARM support to the Mac build. Also update ARM XPT code to add Mac/Apple support.

This commit is contained in:
Brian Smith 2022-06-09 18:08:04 -05:00 • committed by roytam1
commit e55ae571da
8 changed files with 135 additions and 58 deletions

View file

@ -3,20 +3,36 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
.section ".text"
.globl _NS_InvokeByIndex
#ifdef __APPLE__
#define SYM(x) _ ## x
#else
#define SYM(x) x
#endif
.text
.align 2
.globl SYM(_NS_InvokeByIndex)
#ifndef __APPLE__
.type _NS_InvokeByIndex,@function
#endif
/*
* _NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
* uint32_t paramCount, nsXPTCVariant* params)
*/
_NS_InvokeByIndex:
SYM(_NS_InvokeByIndex):
.cfi_startproc
# set up frame
stp x29, x30, [sp,#-32]!
.cfi_adjust_cfa_offset 32
.cfi_rel_offset x29, 0
.cfi_rel_offset x30, 8
mov x29, sp
.cfi_def_cfa_register x29
stp x19, x20, [sp,#16]
.cfi_rel_offset x19, 16
.cfi_rel_offset x20, 24
# save methodIndex across function calls
mov w20, w1
@ -37,7 +53,7 @@ _NS_InvokeByIndex:
# start of stack area passed to invoke_copy_to_stack
mov x0, sp
bl invoke_copy_to_stack
bl SYM(invoke_copy_to_stack)
# load arguments passed in r0-r7
ldp x6, x7, [sp, #48]
@ -58,10 +74,19 @@ _NS_InvokeByIndex:
blr x16
add sp, sp, w19, uxth #3
.cfi_def_cfa_register sp
ldp x19, x20, [sp,#16]
.cfi_restore x19
.cfi_restore x20
ldp x29, x30, [sp],#32
.cfi_adjust_cfa_offset -32
.cfi_restore x29
.cfi_restore x30
ret
.cfi_endproc
#ifndef __APPLE__
.size _NS_InvokeByIndex, . - _NS_InvokeByIndex
.section .note.GNU-stack, "", @progbits
#endif