Differences From Artifact [8f444911c9]:
- File src/runtime/lookup-asm/lookup-asm-x86-elf.S — part of check-in [75d88e0f6e] at 2024-02-24 20:50:51 on branch trunk — Add endbr32 / endbr64 (user: js, size: 2437) [annotate] [blame] [check-ins using]
To Artifact [f6654defd2]:
- File
src/runtime/lookup-asm/lookup-asm-x86-elf.S
— part of check-in
[0b441e52d6]
at
2024-02-26 20:32:38
on branch trunk
— Use <cet.h> and _CET_ENDBR macro
This only uses endbr32/endbr64 when actually needed and emits the
necessary .note.gnu.property. (user: js, size: 2459) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #include "platform.h" .globl objc_msg_lookup .globl objc_msg_lookup_stret .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: | > > > > > > | < < | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #include "platform.h" #ifdef HAVE_CET_H # include <cet.h> #else # define _CET_ENDBR #endif .globl objc_msg_lookup .globl objc_msg_lookup_stret .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound \name: _CET_ENDBR movl 4(%esp), %edx testl %edx, %edx jz .LreturnNilMethod testb $1, %dl jnz .LtaggedPointer_\name |
︙ | ︙ | |||
78 79 80 81 82 83 84 | jmp .Lmain_\name .type \name, %function .size \name, .-\name .endm .macro GENERATE_LOOKUP_SUPER name lookup \name: | | < < | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | jmp .Lmain_\name .type \name, %function .size \name, .-\name .endm .macro GENERATE_LOOKUP_SUPER name lookup \name: _CET_ENDBR movl 4(%esp), %edx movl (%edx), %eax testl %eax, %eax jz .LreturnNilMethod movl %eax, 4(%esp) |
︙ | ︙ |