1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
5 .macro NESTED_ENTRY Name, Section, Handler
6 LEAF_ENTRY \Name, \Section
7 .ifnc \Handler, NoHandler
8 .cfi_personality 0x1b, C_FUNC(\Handler) // 0x1b == DW_EH_PE_pcrel | DW_EH_PE_sdata4
12 .macro NESTED_END Name, Section
13 LEAF_END \Name, \Section
16 .macro LEAF_ENTRY Name, Section
18 .type \Name, %function
23 .macro PATCH_LABEL Name
28 .macro LEAF_END Name, Section
33 .macro LEAF_END_MARKED Name, Section
35 .global C_FUNC(\Name\()_End)
36 LEAF_END \Name, \Section
46 .macro PROLOG_PUSH Reg
48 .cfi_adjust_cfa_offset 4
49 .cfi_rel_offset \Reg, 0
53 .cfi_def_cfa_register ebp
72 .macro ESP_PROLOG_PUSH Reg
76 .macro ESP_PROLOG_ALLOC Size
78 .cfi_adjust_cfa_offset \Size
82 .cfi_def_cfa_register esp
88 .macro ESP_EPILOG_POP Reg
92 .macro ESP_EPILOG_FREE Size
94 .cfi_adjust_cfa_offset -\Size
100 .macro PREPARE_EXTERNAL_VAR Name, Reg
106 addl $_GLOBAL_OFFSET_TABLE_ + (1b - 0b), %\Reg
107 movl C_FUNC(\Name)@GOT(%\Reg), %\Reg
108 .intel_syntax noprefix
111 .macro CHECK_STACK_ALIGNMENT