// REQUIRES: arm-registered-target // RUN: llvm-mc -filetype=obj -triple thumbv7-windows-gnu %s -o %t.o // RUN: llvm-readobj --unwind %t.o | FileCheck --strict-whitespace %s // CHECK: RuntimeFunction { // CHECK-NEXT: Function: func6 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 8 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 7 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 0 // CHECK-NEXT: Prologue [ // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func7 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 8 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 0 // CHECK-NEXT: Prologue [ // CHECK-NEXT: push {r4} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r4} // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func8 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 10 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 0 // CHECK-NEXT: Prologue [ // CHECK-NEXT: push {r4, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r4, lr} // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func9 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 24 // CHECK-NEXT: ReturnType: b.w // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 32 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #32 // CHECK-NEXT: vpush {d8} // CHECK-NEXT: push {lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #32 // CHECK-NEXT: vpop {d8} // CHECK-NEXT: pop {lr} // CHECK-NEXT: b.w // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func10 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 26 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 1 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: Yes // CHECK-NEXT: StackAdjustment: 16 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #16 // CHECK-NEXT: vpush {d8-d9} // CHECK-NEXT: mov r11, sp // CHECK-NEXT: push {r11, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: vpop {d8-d9} // CHECK-NEXT: pop {r11, lr} // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func11 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 24 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 1 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: Yes // CHECK-NEXT: StackAdjustment: 16 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #16 // CHECK-NEXT: vpush {d8-d9} // CHECK-NEXT: mov r11, sp // CHECK-NEXT: push {r11, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: vpop {d8-d9} // CHECK-NEXT: pop {r11, pc} // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func12 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 18 // CHECK-NEXT: ReturnType: b.w // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 6 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 16 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #16 // CHECK-NEXT: vpush {d8-d14} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: vpop {d8-d14} // CHECK-NEXT: b.w // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func13 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 18 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 6 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: Yes // CHECK-NEXT: StackAdjustment: 20 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #20 // CHECK-NEXT: add.w r11, sp, #28 // CHECK-NEXT: push {r4-r11, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #20 // CHECK-NEXT: pop {r4-r11, pc} // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func14 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 14 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 7 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 20 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #20 // CHECK-NEXT: push {r4-r11, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #20 // CHECK-NEXT: pop {r4-r11, pc} // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func15 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 20 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 512 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #512 // CHECK-NEXT: push {r4, lr} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #512 // CHECK-NEXT: pop {r4} // CHECK-NEXT: ldr pc, [sp], #20 // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func16 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 20 // CHECK-NEXT: ReturnType: b.w // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 7 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: Yes // CHECK-NEXT: StackAdjustment: 0 // CHECK-NEXT: Prologue [ // CHECK-NEXT: mov r11, sp // CHECK-NEXT: push {r11, lr} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r11, lr} // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: b.w // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func17 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 20 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 512 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #512 // CHECK-NEXT: push {r4} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #512 // CHECK-NEXT: pop {r4} // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func18 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 6 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 7 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 4 // CHECK-NEXT: Prologue [ // CHECK-NEXT: push {r3, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r3, pc} // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func19 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 12 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 16 // CHECK-NEXT: Prologue [ // CHECK-NEXT: push {r0-r4} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r0-r4} // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func20 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 14 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 16 // CHECK-NEXT: Prologue [ // CHECK-NEXT: push {r0-r4} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: pop {r4} // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func21 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 14 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 16 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #16 // CHECK-NEXT: push {r4} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r0-r4} // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func22 // CHECK-NEXT: Fragment: Yes // CHECK-NEXT: FunctionLength: 14 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 512 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #512 // CHECK-NEXT: push {r4, lr} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #512 // CHECK-NEXT: pop {r4} // CHECK-NEXT: ldr pc, [sp], #20 // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func23 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 12 // CHECK-NEXT: ReturnType: (no epilogue) // CHECK-NEXT: HomedParameters: Yes // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 512 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #512 // CHECK-NEXT: push {r4, lr} // CHECK-NEXT: push {r0-r3} // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func24 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 16 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 3 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: Yes // CHECK-NEXT: StackAdjustment: 8 // CHECK-NEXT: Prologue [ // CHECK-NEXT: add.w r11, sp, #24 // CHECK-NEXT: push {r2-r7, r11, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #8 // CHECK-NEXT: pop {r4-r7, r11, pc} // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func25 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 16 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 3 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: Yes // CHECK-NEXT: StackAdjustment: 8 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #8 // CHECK-NEXT: add.w r11, sp, #16 // CHECK-NEXT: push {r4-r7, r11, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r2-r7, r11, pc} // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func26 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 8 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 7 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 12 // CHECK-NEXT: Prologue [ // CHECK-NEXT: push {r1-r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #12 // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func27 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 8 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 7 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 12 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #12 // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: pop {r1-r3} // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func28 // CHECK-NEXT: Fragment: No // CHECK-NEXT: FunctionLength: 8 // CHECK-NEXT: ReturnType: bx // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 0 // CHECK-NEXT: R: 1 // CHECK-NEXT: LinkRegister: No // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 4 // CHECK-NEXT: Prologue [ // CHECK-NEXT: vpush {d8} // CHECK-NEXT: push {r3} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: vpop {d8} // CHECK-NEXT: pop {r3} // CHECK-NEXT: bx // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: RuntimeFunction { // CHECK-NEXT: Function: func29 // CHECK-NEXT: Fragment: Yes // CHECK-NEXT: FunctionLength: 6 // CHECK-NEXT: ReturnType: pop {pc} // CHECK-NEXT: HomedParameters: No // CHECK-NEXT: Reg: 2 // CHECK-NEXT: R: 0 // CHECK-NEXT: LinkRegister: Yes // CHECK-NEXT: Chaining: No // CHECK-NEXT: StackAdjustment: 16 // CHECK-NEXT: Prologue [ // CHECK-NEXT: sub sp, sp, #16 // CHECK-NEXT: push {r4-r6, lr} // CHECK-NEXT: ] // CHECK-NEXT: Epilogue [ // CHECK-NEXT: add sp, sp, #16 // CHECK-NEXT: pop {r4-r6, pc} // CHECK-NEXT: ] // CHECK-NEXT: } .thumb .syntax unified func6: nop nop nop bx lr func7: push {r4} nop pop {r4} bx lr func8: push {r4,lr} nop pop {r4,lr} bx lr func9: push {lr} vpush {d8} sub sp, sp, #32 nop add sp, sp, #32 vpop {d8} pop {lr} b tailcall func10: push {r11,lr} mov r11, sp vpush {d8-d9} sub sp, sp, #16 nop add sp, sp, #16 vpop {d8-d9} pop {r11,lr} bx lr func11: push {r11,lr} mov r11, sp vpush {d8-d9} sub sp, sp, #16 nop add sp, sp, #16 vpop {d8-d9} pop {r11,pc} func12: vpush {d8-d14} sub sp, sp, #16 nop add sp, sp, #16 vpop {d8-d14} b tailcall func13: push {r4-r11,lr} add r11, sp, #0x1c sub sp, sp, #20 nop add sp, sp, #20 pop {r4-r11,pc} func14: push {r4-r11,lr} sub sp, sp, #20 nop add sp, sp, #20 pop {r4-r11,pc} func15: push {r0-r3} push {r4,lr} sub sp, sp, #512 nop add sp, sp, #512 pop {r4} ldr pc, [sp], #20 func16: push {r0-r3} push {r11,lr} mov r11, sp nop pop {r11, lr} add sp, sp, #16 b tailcall func17: push {r0-r3} push {r4} sub sp, sp, #512 nop add sp, sp, #512 pop {r4} add sp, sp, #16 bx lr func18: push {r3,lr} nop pop {r3,pc} func19: push {r0-r3} push {r0-r4} nop pop {r0-r4} add sp, sp, #16 bx lr func20: push {r0-r3} push {r0-r4} nop add sp, sp, #16 pop {r4} add sp, sp, #16 bx lr func21: push {r0-r3} push {r4} sub sp, sp, #16 nop pop {r0-r4} add sp, sp, #16 bx lr func22: nop nop add sp, sp, #512 pop {r4} ldr pc, [sp], #20 func23: push {r0-r3} push {r4,lr} sub sp, sp, #512 nop nop func24: push {r2-r7,r11,lr} add r11, sp, #24 nop add sp, sp, #8 pop {r4-r7,r11,pc} func25: push {r4-r7,r11,lr} add r11, sp, #16 sub sp, sp, #8 nop pop {r2-r7,r11,pc} func26: push {r1-r3} nop add sp, sp, #12 bx lr func27: sub sp, sp, #12 nop pop {r1-r3} bx lr func28: push {r3} vpush {d8} nop vpop {d8} pop {r3} bx lr func29: nop pop {r4-r11,pc} .section .pdata,"dr" .rva func6 .long 0x000f2011 .rva func7 .long 0x00002011 .rva func8 .long 0x00102015 .rva func9 .long 0x02184031 .rva func10 .long 0x01392035 .rva func11 .long 0x01390031 .rva func12 .long 0x010e4025 .rva func13 .long 0x01760025 .rva func14 .long 0x0157001d .rva func15 .long 0x20108029 .rva func16 .long 0x003fc029 .rva func17 .long 0x2000a029 .rva func18 .long 0xff1f000d .rva func19 .long 0xffc0a019 .rva func20 .long 0xfdc0a01d .rva func21 .long 0xfec0a01d .rva func22 .long 0x2010801e .rva func23 .long 0x2010e019 .rva func24 .long 0xfd730021 .rva func25 .long 0xfe730021 .rva func26 .long 0xfd8f2011 .rva func27 .long 0xfe8f2011 .rva func28 .long 0xff082011 .rva func29 .long 0x0112000e