1a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project/* ----------------------------------------------------------------------- 2a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project darwin.S - Copyright (c) 2000 John Hornkvist 3a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project Copyright (c) 2004 Free Software Foundation, Inc. 4a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 5a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project PowerPC Assembly glue. 6a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 7a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project Permission is hereby granted, free of charge, to any person obtaining 8a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project a copy of this software and associated documentation files (the 9a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project ``Software''), to deal in the Software without restriction, including 10a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project without limitation the rights to use, copy, modify, merge, publish, 11a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project distribute, sublicense, and/or sell copies of the Software, and to 12a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project permit persons to whom the Software is furnished to do so, subject to 13a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project the following conditions: 14a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 15a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project The above copyright notice and this permission notice shall be included 16a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project in all copies or substantial portions of the Software. 17a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 18a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS 19a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR 22a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 23a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project OTHER DEALINGS IN THE SOFTWARE. 25a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project ----------------------------------------------------------------------- */ 26a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 27a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#if defined(__ppc64__) 28a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#define MODE_CHOICE(x, y) y 29a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#else 30a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#define MODE_CHOICE(x, y) x 31a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#endif 32a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 33a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */ 34a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 35a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */ 36a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 37a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#define LIBFFI_ASM 38a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#include <fficonfig.h> 39a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#include <ffi.h> 40a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#define JUMPTARGET(name) name 41a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project#define L(x) x 42a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.text 43a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align 2 44a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.globl _ffi_prep_args 45a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 46a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.text 47a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align 2 48a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.globl _ffi_call_DARWIN 49a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.text 50a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align 2 51a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project_ffi_call_DARWIN: 52a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLFB0: 53a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r12,r8 /* We only need r12 until the call, 54a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project so it doesn't have to be saved. */ 55a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLFB1: 56a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Save the old stack pointer as AP. */ 57a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r8,r1 58a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLCFI0: 59a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Allocate the stack space we need. */ 60a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stwux r1,r1,r4 61a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 62a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Save registers we use. */ 63a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mflr r9 64a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 65a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r28,-16(r8) 66a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r29,-12(r8) 67a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r30,-8(r8) 68a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r31,-4(r8) 69a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 70a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r9,8(r8) 71a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r2,20(r1) 72a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLCFI1: 73a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 74a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Save arguments over call. */ 75a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r31,r5 /* flags, */ 76a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r30,r6 /* rvalue, */ 77a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r29,r7 /* function address, */ 78a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r28,r8 /* our AP. */ 79a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLCFI2: 80a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Call ffi_prep_args. */ 81a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r4,r1 82a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project// ANDROID: these changes were necessary in 2.x; not yet tested in 3.x 83a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project// subi r1,r1,32 /* Android: adjust stack for parameter / scratch area */ 84a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project li r9,0 85a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 86a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mtctr r12 /* r12 holds address of _ffi_prep_args. */ 87a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bctrl 88a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project// addi r1,r1,32 /* Android: readjust stack (see subi above) */ 89a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r2,20(r1) 90a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 91a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Now do the call. 92a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project Set up cr1 with bits 4-7 of the flags. */ 93a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mtcrf 0x40,r31 94a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Get the address to call into CTR. */ 95a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mtctr r29 96a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Load all those argument registers. 97a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project We have set up a nice stack frame, just load it into registers. */ 98a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r3,20+(1*4)(r1) 99a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r4,20+(2*4)(r1) 100a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r5,20+(3*4)(r1) 101a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r6,20+(4*4)(r1) 102a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project nop 103a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r7,20+(5*4)(r1) 104a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r8,20+(6*4)(r1) 105a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r9,20+(7*4)(r1) 106a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r10,20+(8*4)(r1) 107a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 108a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectL1: 109a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Load all the FP registers. */ 110a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bf 6,L2 /* No floats to load. */ 111a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f1,-16-(13*8)(r28) 112a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f2,-16-(12*8)(r28) 113a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f3,-16-(11*8)(r28) 114a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f4,-16-(10*8)(r28) 115a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project nop 116a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f5,-16-(9*8)(r28) 117a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f6,-16-(8*8)(r28) 118a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f7,-16-(7*8)(r28) 119a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f8,-16-(6*8)(r28) 120a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project nop 121a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f9,-16-(5*8)(r28) 122a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f10,-16-(4*8)(r28) 123a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f11,-16-(3*8)(r28) 124a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f12,-16-(2*8)(r28) 125a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project nop 126a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lfd f13,-16-(1*8)(r28) 127a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 128a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectL2: 129a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mr r12,r29 /* Put the target address in r12 as specified. */ 130a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mtctr r12 131a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project nop 132a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project nop 133a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Make the call. */ 134a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bctrl 135a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 136a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Now, deal with the return value. */ 137a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mtcrf 0x01,r31 138a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 139a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bt 30,L(done_return_value) 140a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bt 29,L(fp_return_value) 141a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r3,0(r30) 142a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bf 28,L(done_return_value) 143a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stw r4,4(r30) 144a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 145a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Fall through. */ 146a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 147a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectL(done_return_value): 148a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Restore the registers we used and return. */ 149a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r9,8(r28) 150a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r31,-4(r28) 151a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project mtlr r9 152a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r30,-8(r28) 153a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r29,-12(r28) 154a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r28,-16(r28) 155a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project lwz r1,0(r1) 156a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project blr 157a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 158a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectL(fp_return_value): 159a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Do we have long double to store? */ 160a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bf 31,L(fd_return_value) 161a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stfd f1,0(r30) 162a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stfd f2,8(r30) 163a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project b L(done_return_value) 164a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 165a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectL(fd_return_value): 166a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* Do we have double to store? */ 167a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project bf 28,L(float_return_value) 168a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stfd f1,0(r30) 169a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project b L(done_return_value) 170a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 171a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectL(float_return_value): 172a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project /* We only have a float to store. */ 173a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project stfs f1,0(r30) 174a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project b L(done_return_value) 175a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 176a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLFE1: 177a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project/* END(_ffi_call_DARWIN) */ 178a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 179a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project/* Provide a null definition of _ffi_call_AIX. */ 180a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.text 181a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align 2 182a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.globl _ffi_call_AIX 183a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.text 184a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align 2 185a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project_ffi_call_AIX: 186a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project blr 187a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project/* END(_ffi_call_AIX) */ 188a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project 189a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.data 190a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms 191a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectEH_frame1: 192a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .set L$set$0,LECIE1-LSCIE1 193a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .long L$set$0 ; Length of Common Information Entry 194a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLSCIE1: 195a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .long 0x0 ; CIE Identifier Tag 196a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x1 ; CIE Version 197a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .ascii "zR\0" ; CIE Augmentation 198a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor 199a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x7c ; sleb128 -4; CIE Data Alignment Factor 200a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x41 ; CIE RA Column 201a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x1 ; uleb128 0x1; Augmentation size 202a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x90 ; FDE Encoding (indirect pcrel) 203a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0xc ; DW_CFA_def_cfa 204a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x1 ; uleb128 0x1 205a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x0 ; uleb128 0x0 206a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align LOG2_GPR_BYTES 207a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLECIE1: 208a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.globl _ffi_call_DARWIN.eh 209a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project_ffi_call_DARWIN.eh: 210a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLSFDE1: 211a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .set L$set$1,LEFDE1-LASFDE1 212a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .long L$set$1 ; FDE Length 213a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLASFDE1: 214a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .long LASFDE1-EH_frame1 ; FDE CIE offset 215a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .g_long LLFB0$non_lazy_ptr-. ; FDE initial location 216a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .set L$set$3,LFE1-LFB0 217a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .g_long L$set$3 ; FDE address range 218a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x0 ; uleb128 0x0; Augmentation size 219a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x4 ; DW_CFA_advance_loc4 220a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .set L$set$4,LCFI0-LFB1 221a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .long L$set$4 222a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0xd ; DW_CFA_def_cfa_register 223a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x08 ; uleb128 0x08 224a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x4 ; DW_CFA_advance_loc4 225a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .set L$set$5,LCFI1-LCFI0 226a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .long L$set$5 227a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x11 ; DW_CFA_offset_extended_sf 228a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x41 ; uleb128 0x41 229a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x7e ; sleb128 -2 230a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x9f ; DW_CFA_offset, column 0x1f 231a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x1 ; uleb128 0x1 232a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x9e ; DW_CFA_offset, column 0x1e 233a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x2 ; uleb128 0x2 234a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x9d ; DW_CFA_offset, column 0x1d 235a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x3 ; uleb128 0x3 236a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x9c ; DW_CFA_offset, column 0x1c 237a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x4 ; uleb128 0x4 238a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x4 ; DW_CFA_advance_loc4 239a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .set L$set$6,LCFI2-LCFI1 240a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .long L$set$6 241a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0xd ; DW_CFA_def_cfa_register 242a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .byte 0x1c ; uleb128 0x1c 243a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align LOG2_GPR_BYTES 244a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLEFDE1: 245a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project.data 246a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .align LOG2_GPR_BYTES 247a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source ProjectLLFB0$non_lazy_ptr: 248a89495f48f185779ff7d9d64ce6e6b037c9ded87The Android Open Source Project .g_long LFB0 249