File tree 2 files changed +26
-0
lines changed
2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change 9
9
# }
10
10
_Py_trampoline_func_start:
11
11
#ifdef __x86_64__
12
+ #if defined(__CET__) && (__CET__ & 1 )
13
+ endbr64
14
+ #endif
12
15
sub $ 8 , % rsp
13
16
call * % rcx
14
17
add $ 8 , % rsp
@@ -34,3 +37,22 @@ _Py_trampoline_func_start:
34
37
.globl _Py_trampoline_func_end
35
38
_Py_trampoline_func_end:
36
39
. section .note.GNU - stack , "" , @progbits
40
+ # Note for indicating the assembly code supports CET
41
+ #if defined(__x86_64__) && defined(__CET__) && (__CET__ & 1 )
42
+ . section .note.gnu.property , "a"
43
+ . align 8
44
+ .long 1f - 0f
45
+ .long 4f - 1f
46
+ .long 5
47
+ 0 :
48
+ .string "GNU"
49
+ 1 :
50
+ . align 8
51
+ .long 0xc0000002
52
+ .long 3f - 2f
53
+ 2 :
54
+ .long 0x3
55
+ 3 :
56
+ . align 8
57
+ 4 :
58
+ #endif // __x86_64__
Original file line number Diff line number Diff line change @@ -473,7 +473,11 @@ elf_init_ehframe(ELFObjectContext* ctx)
473
473
DWRF_U8 (0 ); /* Augmentation data. */
474
474
/* Registers saved in CFRAME. */
475
475
#ifdef __x86_64__
476
+ # if defined(__CET__ ) && (__CET__ & 1 )
477
+ DWRF_U8 (DWRF_CFA_advance_loc | 8 );
478
+ # else
476
479
DWRF_U8 (DWRF_CFA_advance_loc | 4 );
480
+ # endif
477
481
DWRF_U8 (DWRF_CFA_def_cfa_offset ); DWRF_UV (16 );
478
482
DWRF_U8 (DWRF_CFA_advance_loc | 6 );
479
483
DWRF_U8 (DWRF_CFA_def_cfa_offset ); DWRF_UV (8 );
You can’t perform that action at this time.
0 commit comments