include/linux/annotate.h | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-)
The following commit has been merged into the objtool/urgent branch of tip:
Commit-ID: 50765fb2746db2ac1d0b4dc9033b077734807689
Gitweb: https://git.kernel.org/tip/50765fb2746db2ac1d0b4dc9033b077734807689
Author: Josh Poimboeuf <jpoimboe@kernel.org>
AuthorDate: Tue, 02 Dec 2025 09:59:38 -08:00
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 03 Dec 2025 16:53:19 +01:00
objtool: Consolidate annotation macros
Consolidate __ASM_ANNOTATE into a single macro which is used by both C
and asm. This also makes the code generation a bit more palatable by
putting it all on a single line.
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://patch.msgid.link/c05ff40d3383e85c3b59018ef0b3c7aaf993a60d.1764694625.git.jpoimboe@kernel.org
---
include/linux/annotate.h | 36 +++++++++++++++---------------------
1 file changed, 15 insertions(+), 21 deletions(-)
diff --git a/include/linux/annotate.h b/include/linux/annotate.h
index 7c10d34..996126f 100644
--- a/include/linux/annotate.h
+++ b/include/linux/annotate.h
@@ -6,41 +6,35 @@
#ifdef CONFIG_OBJTOOL
-#ifndef __ASSEMBLY__
-
#define __ASM_ANNOTATE(section, label, type) \
- ".pushsection " section ",\"M\", @progbits, 8\n\t" \
- ".long " __stringify(label) " - .\n\t" \
- ".long " __stringify(type) "\n\t" \
- ".popsection\n\t"
+ .pushsection section, "M", @progbits, 8; \
+ .long label - .; \
+ .long type; \
+ .popsection
+
+#ifndef __ASSEMBLY__
#define ASM_ANNOTATE_LABEL(label, type) \
- __ASM_ANNOTATE(".discard.annotate_insn", label, type)
+ __stringify(__ASM_ANNOTATE(".discard.annotate_insn", label, type)) "\n\t"
#define ASM_ANNOTATE(type) \
- "911:\n\t" \
- ASM_ANNOTATE_LABEL(911b, type)
+ "911: " \
+ __stringify(__ASM_ANNOTATE(".discard.annotate_insn", 911b, type)) "\n\t"
#define ASM_ANNOTATE_DATA(type) \
- "912:\n\t" \
- __ASM_ANNOTATE(".discard.annotate_data", 912b, type)
+ "912: " \
+ __stringify(__ASM_ANNOTATE(".discard.annotate_data", 912b, type)) "\n\t"
#else /* __ASSEMBLY__ */
-.macro __ANNOTATE section, type
-.Lhere_\@:
- .pushsection \section, "M", @progbits, 8
- .long .Lhere_\@ - .
- .long \type
- .popsection
-.endm
-
.macro ANNOTATE type
- __ANNOTATE ".discard.annotate_insn", \type
+.Lhere_\@:
+ __ASM_ANNOTATE(".discard.annotate_insn", .Lhere_\@, \type)
.endm
.macro ANNOTATE_DATA type
- __ANNOTATE ".discard.annotate_data", \type
+.Lhere_\@:
+ __ASM_ANNOTATE(".discard.annotate_data", .Lhere_\@, \type)
.endm
#endif /* __ASSEMBLY__ */
On Wed, 3 Dec 2025 at 08:40, tip-bot2 for Josh Poimboeuf
<tip-bot2@linutronix.de> wrote:
>
> Consolidate __ASM_ANNOTATE into a single macro which is used by both C
> and asm. This also makes the code generation a bit more palatable by
> putting it all on a single line.
No objections, but I just wanted to say that when stating "this makes
the code generation more palatable", it would be good to actually show
*how* it does it (with just an example).
Because it's hard to read that diff and figure out what the actual
effect is. I can just about see it, but...
Linus
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Wed, 3 Dec 2025 at 08:40, tip-bot2 for Josh Poimboeuf
> <tip-bot2@linutronix.de> wrote:
> >
> > Consolidate __ASM_ANNOTATE into a single macro which is used by both C
> > and asm. This also makes the code generation a bit more palatable by
> > putting it all on a single line.
>
> No objections, but I just wanted to say that when stating "this makes
> the code generation more palatable", it would be good to actually show
> *how* it does it (with just an example).
>
> Because it's hard to read that diff and figure out what the actual
> effect is. I can just about see it, but...
Sorry, should have added this to the changelog.
Find below a diff of the arch/x86/kernel/process.s output
of your tree versus current tip:objtool/urgent.
Thanks,
Ingo
--- process.s.linus 2025-12-03 17:52:48.210562871 +0100
+++ process.s.fixed 2025-12-03 17:53:11.003622421 +0100
@@ -13,12 +13,8 @@
.align 4
.globl __SCT__x86_idle
__SCT__x86_idle:
-911:
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 911b - .
- .long 1
- .popsection
- jmp __x86_return_thunk
+911: .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 911b - .; .long 1; .popsection
+jmp __x86_return_thunk
.byte 0x0f, 0xb9, 0xcc
.type __SCT__x86_idle, @function
.size __SCT__x86_idle, . - __SCT__x86_idle
@@ -58,35 +54,22 @@ default_idle:
# 107 "/home/mingo/tip/arch/x86/include/asm/paravirt.h" 1
# ALT: oldinstr
771:
- 911:
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 911b - .
- .long 2
- .popsection
+ 911: .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 911b - .; .long 2; .popsection
call *pv_ops+8(%rip); # pv_ops.irq.safe_halt
772:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte (((1 << 1) << 16) | (( 3*32+21)))
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
call BUG_func
775:
...
@@ -139,12 +122,8 @@ mwait_idle:
1:jmp .L5 #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L5 - . #
.quad cpu_buf_idle_clear + 1 - . #,
.popsection
@@ -183,25 +162,16 @@ mwait_idle:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte (22*32 + (7))
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
clflush (%rax) # pretmp_19
775:
@@ -589,14 +559,9 @@ set_cpuid_faulting:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -607,12 +572,8 @@ set_cpuid_faulting:
1: jmp .L32 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L32 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -807,12 +768,8 @@ arch_release_task_struct:
1: jmp .L60 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L60 - . #
.quad __fpu_state_size_dynamic + 0 + 2 - . #,
.popsection
@@ -1027,25 +984,16 @@ copy_thread:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L78 #
775:
@@ -1055,37 +1003,24 @@ copy_thread:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 516 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $16, boot_cpu_data+112(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $16, boot_cpu_data+112(%rip) #,
jnz .L77 #
jmp .L78 #
.popsection
@@ -1283,25 +1218,16 @@ flush_thread:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L103 #
775:
@@ -1311,37 +1237,24 @@ flush_thread:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 516 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $16, boot_cpu_data+112(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $16, boot_cpu_data+112(%rip) #,
jnz .L104 #
jmp .L103 #
.popsection
@@ -1820,20 +1733,12 @@ native_tss_update_io_bitmap:
#APP
# 486 "/home/mingo/tip/arch/x86/kernel/process.c" 1
855: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 855b - .
- .long 3
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 855b - .; .long 3; .popsection
# 0 "" 2
# 486 "/home/mingo/tip/arch/x86/kernel/process.c" 1
1: .byte 0x0f, 0x0b ;
.pushsection __bug_table,"aw"
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
2:
.long 1b - . # bug_entry::bug_addr
.long .LC4 - . # bug_entry::format #
@@ -1842,19 +1747,11 @@ native_tss_update_io_bitmap:
.word 2307 # bug_entry::flags #
.org 2b + 16 #
.popsection
-.pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 1b - .
- .long 8
- .popsection
-
+.pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 1b - .; .long 8; .popsection
# 0 "" 2
# 486 "/home/mingo/tip/arch/x86/kernel/process.c" 1
856: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 856b - .
- .long 4
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 856b - .; .long 4; .popsection
# 0 "" 2
# /home/mingo/tip/arch/x86/include/asm/bitops.h:75: asm_inline volatile(LOCK_PREFIX "andb %b1,%0"
# 75 "/home/mingo/tip/arch/x86/include/asm/bitops.h" 1
@@ -1886,11 +1783,7 @@ native_tss_update_io_bitmap:
#APP
# 328 "/home/mingo/tip/arch/x86/include/asm/desc.h" 1
463: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 463b - .
- .long 3
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 463b - .; .long 3; .popsection
# 0 "" 2
#NO_APP
call debug_locks_off #
@@ -1906,11 +1799,7 @@ native_tss_update_io_bitmap:
#APP
# 328 "/home/mingo/tip/arch/x86/include/asm/desc.h" 1
465: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 465b - .
- .long 4
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 465b - .; .long 4; .popsection
# 0 "" 2
#NO_APP
jmp .L149 #
@@ -1936,11 +1825,7 @@ native_tss_update_io_bitmap:
lea (2f)(%rip), %rdi # bug
1:
.pushsection __bug_table,"aw"
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
2:
.long 1b - . # bug_entry::bug_addr
.long .LC6 - . # bug_entry::format #
@@ -2003,11 +1888,7 @@ ret_from_fork:
#APP
# 193 "/home/mingo/tip/include/linux/entry-common.h" 1
768: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 768b - .
- .long 3
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 768b - .; .long 3; .popsection
# 0 "" 2
# /home/mingo/tip/arch/x86/include/asm/current.h:23: return this_cpu_read_const(const_current_task);
#NO_APP
@@ -2020,12 +1901,8 @@ ret_from_fork:
1: jmp .L174 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L174 - . #
.quad rseq_debug_enabled + 0 + 2 - . #,
.popsection
@@ -2062,12 +1939,8 @@ ret_from_fork:
1: jmp .L182 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L182 - . #
.quad randomize_kstack_offset + 0 + 2 - . #,
.popsection
@@ -2087,25 +1960,16 @@ ret_from_fork:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L185 #
775:
@@ -2115,37 +1979,24 @@ ret_from_fork:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 686 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $64, boot_cpu_data+133(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $64, boot_cpu_data+133(%rip) #,
jnz .L184 #
jmp .L185 #
.popsection
@@ -2163,20 +2014,12 @@ ret_from_fork:
#APP
# 195 "/home/mingo/tip/include/linux/entry-common.h" 1
769: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 769b - .
- .long 4
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 769b - .; .long 4; .popsection
# 0 "" 2
# /home/mingo/tip/include/linux/irq-entry-common.h:295: instrumentation_begin();
# 295 "/home/mingo/tip/include/linux/irq-entry-common.h" 1
759: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 759b - .
- .long 3
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 759b - .; .long 3; .popsection
# 0 "" 2
# /home/mingo/tip/arch/x86/include/asm/atomic64_64.h:15: return __READ_ONCE((v)->counter);
#NO_APP
@@ -2189,11 +2032,7 @@ ret_from_fork:
#APP
# 299 "/home/mingo/tip/include/linux/irq-entry-common.h" 1
760: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 760b - .
- .long 4
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 760b - .; .long 4; .popsection
# 0 "" 2
# /home/mingo/tip/arch/x86/include/asm/processor.h:709: asm volatile(ALTERNATIVE("", "div %2\n\t", X86_BUG_DIV0)
#NO_APP
@@ -2209,25 +2048,16 @@ ret_from_fork:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte (22*32 + (1*32+ 1))
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
div %ecx # tmp152
@@ -2280,25 +2110,16 @@ ret_from_fork:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 7*32+26)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
call write_ibpb
775:
@@ -2534,25 +2355,16 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L234 #
775:
@@ -2562,37 +2374,24 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 441 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $2, boot_cpu_data+103(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $2, boot_cpu_data+103(%rip) #,
jnz .L235 #
jmp .L234 #
.popsection
@@ -2613,14 +2412,9 @@ speculation_ctrl_update:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -2631,12 +2425,8 @@ speculation_ctrl_update:
1: jmp .L239 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L239 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -2653,12 +2443,8 @@ speculation_ctrl_update:
1: jmp .L257 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L257 - . #
.quad switch_to_cond_stibp + 0 + 2 - . #,
.popsection
@@ -2708,25 +2494,16 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L237 #
775:
@@ -2736,37 +2513,24 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 248 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $1, boot_cpu_data+79(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $1, boot_cpu_data+79(%rip) #,
jnz .L238 #
jmp .L237 #
.popsection
@@ -2792,25 +2556,16 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L245 #
775:
@@ -2820,37 +2575,24 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 252 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $16, boot_cpu_data+79(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $16, boot_cpu_data+79(%rip) #,
jnz .L244 #
jmp .L245 #
.popsection
@@ -2919,25 +2661,16 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L242 #
775:
@@ -2947,37 +2680,24 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 607 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $128, boot_cpu_data+123(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $128, boot_cpu_data+123(%rip) #,
jnz .L243 #
jmp .L242 #
.popsection
@@ -3022,14 +2742,9 @@ speculation_ctrl_update:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -3040,12 +2755,8 @@ speculation_ctrl_update:
1: jmp .L250 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L250 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -3066,25 +2777,16 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L240 #
775:
@@ -3094,37 +2796,24 @@ speculation_ctrl_update:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 440 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $1, boot_cpu_data+103(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $1, boot_cpu_data+103(%rip) #,
jnz .L243 #
jmp .L240 #
.popsection
@@ -3197,14 +2886,9 @@ speculation_ctrl_update:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -3215,12 +2899,8 @@ speculation_ctrl_update:
1: jmp .L254 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L254 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -3243,14 +2923,9 @@ speculation_ctrl_update:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -3261,12 +2936,8 @@ speculation_ctrl_update:
1: jmp .L252 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L252 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -3551,14 +3222,9 @@ __switch_to_xtra:
# 70 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: rdmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 9
.popsection
@@ -3574,12 +3240,8 @@ __switch_to_xtra:
1: jmp .L310 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L310 - . #
.quad __tracepoint_read_msr+8 + 0 + 2 - . #,
.popsection
@@ -3606,14 +3268,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -3624,12 +3281,8 @@ __switch_to_xtra:
1: jmp .L312 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L312 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -3665,25 +3318,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L318 #
775:
@@ -3693,37 +3337,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 441 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $2, boot_cpu_data+103(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $2, boot_cpu_data+103(%rip) #,
jnz .L317 #
jmp .L318 #
.popsection
@@ -3744,12 +3375,8 @@ __switch_to_xtra:
1: jmp .L342 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L342 - . #
.quad switch_to_cond_stibp + 0 + 2 - . #,
.popsection
@@ -3785,25 +3412,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L324 #
775:
@@ -3813,37 +3431,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 248 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $1, boot_cpu_data+79(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $1, boot_cpu_data+79(%rip) #,
jnz .L325 #
jmp .L324 #
.popsection
@@ -3872,25 +3477,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L331 #
775:
@@ -3900,37 +3496,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 252 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $16, boot_cpu_data+79(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $16, boot_cpu_data+79(%rip) #,
jnz .L330 #
jmp .L331 #
.popsection
@@ -4028,25 +3611,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L347 #
775:
@@ -4056,37 +3630,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 441 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $2, boot_cpu_data+103(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $2, boot_cpu_data+103(%rip) #,
jnz .L348 #
jmp .L347 #
.popsection
@@ -4107,14 +3668,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -4125,12 +3681,8 @@ __switch_to_xtra:
1: jmp .L352 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L352 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -4147,12 +3699,8 @@ __switch_to_xtra:
1: jmp .L370 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L370 - . #
.quad switch_to_cond_stibp + 0 + 2 - . #,
.popsection
@@ -4213,25 +3761,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L328 #
775:
@@ -4241,37 +3780,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 607 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $128, boot_cpu_data+123(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $128, boot_cpu_data+123(%rip) #,
jnz .L329 #
jmp .L328 #
.popsection
@@ -4308,14 +3834,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -4326,12 +3847,8 @@ __switch_to_xtra:
1: jmp .L326 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L326 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -4352,25 +3869,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L321 #
775:
@@ -4380,37 +3888,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 440 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $1, boot_cpu_data+103(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $1, boot_cpu_data+103(%rip) #,
jnz .L329 #
jmp .L321 #
.popsection
@@ -4445,14 +3940,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -4463,12 +3953,8 @@ __switch_to_xtra:
1: jmp .L336 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L336 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -4496,25 +3982,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L350 #
775:
@@ -4524,37 +4001,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 248 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $1, boot_cpu_data+79(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $1, boot_cpu_data+79(%rip) #,
jnz .L351 #
jmp .L350 #
.popsection
@@ -4580,25 +4044,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L358 #
775:
@@ -4608,37 +4063,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 252 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $16, boot_cpu_data+79(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $16, boot_cpu_data+79(%rip) #,
jnz .L357 #
jmp .L358 #
.popsection
@@ -4728,25 +4170,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L355 #
775:
@@ -4756,37 +4189,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 607 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $128, boot_cpu_data+123(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $128, boot_cpu_data+123(%rip) #,
jnz .L356 #
jmp .L355 #
.popsection
@@ -4823,25 +4243,16 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte ( 3*32+21)
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
jmp .L353 #
775:
@@ -4851,37 +4262,24 @@ __switch_to_xtra:
# ALT: padding
.skip -(((775f-774f)-(772b-771b)) > 0) * ((775f-774f)-(772b-771b)),0x90
773:
-.pushsection .altinstructions,"a"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 771b - .
+.pushsection .altinstructions, "aM", @progbits, 14
+ .long 771b - .
.long 774f - .
.4byte 440 #
.byte 773b-771b
.byte 775f-774f
.popsection
.pushsection .altinstr_replacement, "ax"
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- # ALT: replacement
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+# ALT: replacement
774:
775:
.popsection
.pushsection .altinstr_aux,"ax"
6:
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- testb $1, boot_cpu_data+103(%rip) #,
+912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+ testb $1, boot_cpu_data+103(%rip) #,
jnz .L356 #
jmp .L353 #
.popsection
@@ -4909,14 +4307,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -4927,12 +4320,8 @@ __switch_to_xtra:
1: jmp .L363 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L363 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -4990,14 +4379,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -5008,12 +4392,8 @@ __switch_to_xtra:
1: jmp .L338 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L338 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -5039,14 +4419,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -5057,12 +4432,8 @@ __switch_to_xtra:
1: jmp .L340 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L340 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -5099,14 +4470,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -5117,12 +4483,8 @@ __switch_to_xtra:
1: jmp .L367 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L367 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -5151,14 +4513,9 @@ __switch_to_xtra:
# 80 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: wrmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 8
.popsection
@@ -5169,12 +4526,8 @@ __switch_to_xtra:
1: jmp .L365 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L365 - . #
.quad __tracepoint_write_msr+8 + 0 + 2 - . #,
.popsection
@@ -5269,20 +4622,12 @@ arch_cpu_idle_dead:
#APP
# 85 "/home/mingo/tip/arch/x86/include/asm/smp.h" 1
56: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 56b - .
- .long 3
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 56b - .; .long 3; .popsection
# 0 "" 2
# 85 "/home/mingo/tip/arch/x86/include/asm/smp.h" 1
1: .byte 0x0f, 0x0b ;
.pushsection __bug_table,"aw"
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
2:
.long 1b - . # bug_entry::bug_addr
.long .LC4 - . # bug_entry::format #
@@ -5378,12 +4723,8 @@ stop_this_cpu:
1:jmp .L422 #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L422 - . #
.quad cpu_buf_idle_clear + 1 - . #,
.popsection
@@ -5410,20 +4751,12 @@ stop_this_cpu:
#APP
# 854 "/home/mingo/tip/arch/x86/kernel/process.c" 1
862: nop
- .pushsection .discard.annotate_insn,"M", @progbits, 8
- .long 862b - .
- .long 3
- .popsection
-
+ .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 862b - .; .long 3; .popsection
# 0 "" 2
# 854 "/home/mingo/tip/arch/x86/kernel/process.c" 1
1: .byte 0x0f, 0x0b ;
.pushsection __bug_table,"aw"
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
2:
.long 1b - . # bug_entry::bug_addr
.long .LC4 - . # bug_entry::format #
@@ -5669,14 +5002,9 @@ arch_post_acpi_subsys_init:
# 70 "/home/mingo/tip/arch/x86/include/asm/msr.h" 1
1: rdmsr
2:
- .pushsection "__ex_table","a"
+ .pushsection __ex_table, "aM", @progbits, 12
.balign 4
-912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long (1b) - .
+ .long (1b) - .
.long (2b) - .
.long 9
.popsection
@@ -5693,12 +5021,8 @@ arch_post_acpi_subsys_init:
1: jmp .L457 # objtool NOPs this #
.pushsection __jump_table, "aw"
.balign 8
- 912:
- .pushsection .discard.annotate_data,"M", @progbits, 8
- .long 912b - .
- .long 1
- .popsection
- .long 1b - .
+ 912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection
+.long 1b - .
.long .L457 - . #
.quad __tracepoint_read_msr+8 + 0 + 2 - . #,
.popsection
On Wed, 3 Dec 2025 at 08:57, Ingo Molnar <mingo@kernel.org> wrote:
>
> Find below a diff of the arch/x86/kernel/process.s output
> of your tree versus current tip:objtool/urgent.
Yeah, just a single example would have been sufficient, ie a simple
Turn
911:
.pushsection .discard.annotate_insn,"M", @progbits, 8
.long 911b - .
.long 1
.popsection
jmp __x86_return_thunk
Into
911: .pushsection ".discard.annotate_insn", "M", @progbits, 8;
.long 911b - .; .long 1; .popsection
jmp __x86_return_thunk
and btw, the quotes around the section name are not necessary afaik.
Also, I have to say that being mergeable is a bit annoying here:
without that, we could drop the "@progbits, 8" parts too which is just
strange noise. Is the mergeability really a win? Because I'd assume
that it's never *actually* merged, since the expression "911b-." ends
up being a unique value?
What am I missing? It *feels* like this should just all be
911: .pushsection .discard.annotate_insn ; .long 911b - .;
.long 1; .popsection
jmp __x86_return_thunk
instead. But it's entirely possible I'm not seeing the reason here...
Linus
* Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Wed, 3 Dec 2025 at 08:57, Ingo Molnar <mingo@kernel.org> wrote: > > > > Find below a diff of the arch/x86/kernel/process.s output > > of your tree versus current tip:objtool/urgent. > > Yeah, just a single example would have been sufficient, ie a simple > > Turn > > 911: > .pushsection .discard.annotate_insn,"M", @progbits, 8 > .long 911b - . > .long 1 > .popsection > jmp __x86_return_thunk > > Into > > 911: .pushsection ".discard.annotate_insn", "M", @progbits, 8; > .long 911b - .; .long 1; .popsection > jmp __x86_return_thunk I ended up rebasing the commit after all and added your example, because seeing it written out triggered further enhancements: > and btw, the quotes around the section name are not necessary afaik. > > Also, I have to say that being mergeable is a bit annoying here: > without that, we could drop the "@progbits, 8" parts too which is just > strange noise. Is the mergeability really a win? Because I'd assume > that it's never *actually* merged, since the expression "911b-." ends > up being a unique value? > > What am I missing? It *feels* like this should just all be > > 911: .pushsection .discard.annotate_insn ; .long 911b - .; > .long 1; .popsection > jmp __x86_return_thunk > > instead. But it's entirely possible I'm not seeing the reason here... Thanks, Ingo
On Wed, Dec 03, 2025 at 09:21:55AM -0800, Linus Torvalds wrote: > On Wed, 3 Dec 2025 at 08:57, Ingo Molnar <mingo@kernel.org> wrote: > > > > Find below a diff of the arch/x86/kernel/process.s output > > of your tree versus current tip:objtool/urgent. > > Yeah, just a single example would have been sufficient, ie a simple > > Turn > > 911: > .pushsection .discard.annotate_insn,"M", @progbits, 8 > .long 911b - . > .long 1 > .popsection > jmp __x86_return_thunk > > Into > > 911: .pushsection ".discard.annotate_insn", "M", @progbits, 8; > .long 911b - .; .long 1; .popsection > jmp __x86_return_thunk > > and btw, the quotes around the section name are not necessary afaik. Indeed, I can remove those quotes. > Also, I have to say that being mergeable is a bit annoying here: > without that, we could drop the "@progbits, 8" parts too which is just > strange noise. Is the mergeability really a win? Because I'd assume > that it's never *actually* merged, since the expression "911b-." ends > up being a unique value? > > What am I missing? It *feels* like this should just all be > > 911: .pushsection .discard.annotate_insn ; .long 911b - .; > .long 1; .popsection > jmp __x86_return_thunk > > instead. But it's entirely possible I'm not seeing the reason here... So that mergeable thing is the only way to convince the toolchains to allow setting the section entsize, which is a generic way for objtool to look at the myriad of special sections and determine their entry sizes, so it can extract individual entries for the purposes of creating livepatch modules. In this case I do realize the irony of objtool needing to know the section size of a section which is explicitly created for objtool's use (so of course it already knows the size). In actuality they are two completely separate subcommands of objtool. "Regular" objtool reads .discard.annotate_insn for its annotations, whereas "objtool klp diff" extracts special section entries. It does so in a generic way (entsize), regardless of whether the special section is objtool-specific or not (e.g., the bug table). -- Josh
On Wed, 3 Dec 2025 at 09:46, Josh Poimboeuf <jpoimboe@kernel.org> wrote:
>
> So that mergeable thing is the only way to convince the toolchains to
> allow setting the section entsize
Ugh. What a horrid reason. That *should* be trivially done by just
having a linker script setting, but if one doesn't exist...
What are the actual entry sizes, though? Because maybe we could just
use alignment instead - which is trivially settable in the linker
script.
Linus
On Wed, Dec 03, 2025 at 10:41:30AM -0800, Linus Torvalds wrote: > On Wed, 3 Dec 2025 at 09:46, Josh Poimboeuf <jpoimboe@kernel.org> wrote: > > > > So that mergeable thing is the only way to convince the toolchains to > > allow setting the section entsize > > Ugh. What a horrid reason. That *should* be trivially done by just > having a linker script setting, but if one doesn't exist... Believe me, I looked and there's surprisingly no way to do that from linker script. > What are the actual entry sizes, though? Because maybe we could just > use alignment instead - which is trivially settable in the linker > script. That could work. At least .altinstructions (14 bytes) and __ex_table (12 bytes) aren't power of two. We could certainly pad them, That does increase memory usage though. On my defconfig kernel that would add about ~11k. -- Josh
On Wed, 3 Dec 2025 at 11:17, Josh Poimboeuf <jpoimboe@kernel.org> wrote:
>
> > What are the actual entry sizes, though? Because maybe we could just
> > use alignment instead - which is trivially settable in the linker
> > script.
>
> That could work. At least .altinstructions (14 bytes) and __ex_table
> (12 bytes) aren't power of two.
>
> We could certainly pad them, That does increase memory usage though. On
> my defconfig kernel that would add about ~11k.
Ok, if they aren't all naturally aligned, let's just keep with the
horrid 'mergeable' thing for now.
It's not wonderful, but nobody sane looks at the generated asm anyway.
And regardless, it's better than it used to be.
Linus
On Wed, 3 Dec 2025 at 09:21, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> It *feels* like this should just all be
>
> 911: .pushsection .discard.annotate_insn ; .long 911b - .; .long 1; .popsection
> jmp __x86_return_thunk
>
> instead.
Actually, I think it should just be
911: jmp __x86_return_thunk
.pushsection .discard.annotate_insn ; .long 911b - . , 1; .popsection
but again: it's entirely possible that there's something I am missing.
Linus
On Wed, Dec 03, 2025 at 09:44:45AM -0800, Linus Torvalds wrote: > On Wed, 3 Dec 2025 at 09:21, Linus Torvalds > <torvalds@linux-foundation.org> wrote: > > > > It *feels* like this should just all be > > > > 911: .pushsection .discard.annotate_insn ; .long 911b - .; .long 1; .popsection > > jmp __x86_return_thunk > > > > instead. > > Actually, I think it should just be > > 911: jmp __x86_return_thunk > .pushsection .discard.annotate_insn ; .long 911b - . , 1; .popsection > > but again: it's entirely possible that there's something I am missing. Indeed, we can combine the longs (though see my other email for the explanation about the mergeable thing). -- Josh
Remove the superfluous section name quotes, and combine the longs into a
single command.
Before:
911: .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 911b - .; .long 2; .popsection
After:
911: .pushsection .discard.annotate_insn, "M", @progbits, 8; .long 911b - ., 2; .popsection
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
include/linux/annotate.h | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/include/linux/annotate.h b/include/linux/annotate.h
index 5efac5d4f9cf..2f1599c9e573 100644
--- a/include/linux/annotate.h
+++ b/include/linux/annotate.h
@@ -8,33 +8,32 @@
#define __ASM_ANNOTATE(section, label, type) \
.pushsection section, "M", @progbits, 8; \
- .long label - .; \
- .long type; \
+ .long label - ., type; \
.popsection
#ifndef __ASSEMBLY__
#define ASM_ANNOTATE_LABEL(label, type) \
- __stringify(__ASM_ANNOTATE(".discard.annotate_insn", label, type))
+ __stringify(__ASM_ANNOTATE(.discard.annotate_insn, label, type))
#define ASM_ANNOTATE(type) \
"911: " \
- __stringify(__ASM_ANNOTATE(".discard.annotate_insn", 911b, type))
+ __stringify(__ASM_ANNOTATE(.discard.annotate_insn, 911b, type))
#define ASM_ANNOTATE_DATA(type) \
"912: " \
- __stringify(__ASM_ANNOTATE(".discard.annotate_data", 912b, type))
+ __stringify(__ASM_ANNOTATE(.discard.annotate_data, 912b, type))
#else /* __ASSEMBLY__ */
.macro ANNOTATE type
.Lhere_\@:
- __ASM_ANNOTATE(".discard.annotate_insn", .Lhere_\@, \type)
+ __ASM_ANNOTATE(.discard.annotate_insn, .Lhere_\@, \type)
.endm
.macro ANNOTATE_DATA type
.Lhere_\@:
- __ASM_ANNOTATE(".discard.annotate_data", .Lhere_\@, \type)
+ __ASM_ANNOTATE(.discard.annotate_data, .Lhere_\@, \type)
.endm
#endif /* __ASSEMBLY__ */
--
2.51.1
The following commit has been merged into the objtool/urgent branch of tip:
Commit-ID: 2d3451ef1ef679ae496f8e335f4b1305885e8083
Gitweb: https://git.kernel.org/tip/2d3451ef1ef679ae496f8e335f4b1305885e8083
Author: Josh Poimboeuf <jpoimboe@kernel.org>
AuthorDate: Wed, 03 Dec 2025 10:07:38 -08:00
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 03 Dec 2025 19:45:29 +01:00
objtool: Simplify .annotate_insn code generation output some more
Remove the superfluous section name quotes, and combine the longs into a
single command.
Before:
911: .pushsection ".discard.annotate_insn", "M", @progbits, 8; .long 911b - .; .long 2; .popsection
After:
911: .pushsection .discard.annotate_insn, "M", @progbits, 8; .long 911b - ., 2; .popsection
No change in functionality.
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://patch.msgid.link/hpsfcihgqmhcdrg7pop7z73ptymakgjq7qlxrawrjxilosk43l@xikqif3ievj4
---
include/linux/annotate.h | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/include/linux/annotate.h b/include/linux/annotate.h
index 5efac5d..2f1599c 100644
--- a/include/linux/annotate.h
+++ b/include/linux/annotate.h
@@ -8,33 +8,32 @@
#define __ASM_ANNOTATE(section, label, type) \
.pushsection section, "M", @progbits, 8; \
- .long label - .; \
- .long type; \
+ .long label - ., type; \
.popsection
#ifndef __ASSEMBLY__
#define ASM_ANNOTATE_LABEL(label, type) \
- __stringify(__ASM_ANNOTATE(".discard.annotate_insn", label, type))
+ __stringify(__ASM_ANNOTATE(.discard.annotate_insn, label, type))
#define ASM_ANNOTATE(type) \
"911: " \
- __stringify(__ASM_ANNOTATE(".discard.annotate_insn", 911b, type))
+ __stringify(__ASM_ANNOTATE(.discard.annotate_insn, 911b, type))
#define ASM_ANNOTATE_DATA(type) \
"912: " \
- __stringify(__ASM_ANNOTATE(".discard.annotate_data", 912b, type))
+ __stringify(__ASM_ANNOTATE(.discard.annotate_data, 912b, type))
#else /* __ASSEMBLY__ */
.macro ANNOTATE type
.Lhere_\@:
- __ASM_ANNOTATE(".discard.annotate_insn", .Lhere_\@, \type)
+ __ASM_ANNOTATE(.discard.annotate_insn, .Lhere_\@, \type)
.endm
.macro ANNOTATE_DATA type
.Lhere_\@:
- __ASM_ANNOTATE(".discard.annotate_data", .Lhere_\@, \type)
+ __ASM_ANNOTATE(.discard.annotate_data, .Lhere_\@, \type)
.endm
#endif /* __ASSEMBLY__ */
On Wed, Dec 03, 2025 at 05:57:00PM +0100, Ingo Molnar wrote: > * Linus Torvalds <torvalds@linux-foundation.org> wrote: > > > On Wed, 3 Dec 2025 at 08:40, tip-bot2 for Josh Poimboeuf > > <tip-bot2@linutronix.de> wrote: > > > > > > Consolidate __ASM_ANNOTATE into a single macro which is used by both C > > > and asm. This also makes the code generation a bit more palatable by > > > putting it all on a single line. > > > > No objections, but I just wanted to say that when stating "this makes > > the code generation more palatable", it would be good to actually show > > *how* it does it (with just an example). > > > > Because it's hard to read that diff and figure out what the actual > > effect is. I can just about see it, but... > > Sorry, should have added this to the changelog. > > Find below a diff of the arch/x86/kernel/process.s output > of your tree versus current tip:objtool/urgent. It's still not exactly "pretty", but I'm looking again at how to make all that better... Hopefully we can get .macro working with Clang inline asm at some point. -- Josh
© 2016 - 2025 Red Hat, Inc.