.macro mknops nr_bytes .nops \nr_bytes, 9 .endm .macro ALTERNATIVE .L\@_orig_s: .L\@_orig_e: mknops (-(((.L\@_repl_e\()1 - .L\@_repl_s\()1) - (.L\@_orig_e - .L\@_orig_s)) > 0) * ((.L\@_repl_e\()1 - .L\@_repl_s\()1) - (.L\@_orig_e - .L\@_orig_s))) .L\@_orig_p: .section .discard, "a", @progbits .byte (.L\@_orig_p - .L\@_orig_s) .byte 0xff + (.L\@_repl_e\()1 - .L\@_repl_s\()1) - (.L\@_orig_p - .L\@_orig_s) .section .altinstr_replacement, "ax", @progbits .L\@_repl_s\()1: .L\@_fill_rsb_loop: jnz .L\@_fill_rsb_loop mov %eax, %esp .L\@_repl_e\()1: .endm .text _start: ALTERNATIVE