Commit | Line | Data |
---|---|---|
62a02d25 | 1 | .macro mknops nr_bytes |
8f065d3b | 2 | .nops \nr_bytes, 9 |
62a02d25 L |
3 | .endm |
4 | ||
5 | .macro ALTERNATIVE | |
6 | .L\@_orig_s: | |
7 | .L\@_orig_e: | |
8 | 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))) | |
9 | .L\@_orig_p: | |
10 | ||
11 | .section .discard, "a", @progbits | |
12 | .byte (.L\@_orig_p - .L\@_orig_s) | |
13 | .byte 0xff + (.L\@_repl_e\()1 - .L\@_repl_s\()1) - (.L\@_orig_p - .L\@_orig_s) | |
14 | ||
15 | .section .altinstr_replacement, "ax", @progbits | |
16 | .L\@_repl_s\()1: | |
17 | .L\@_fill_rsb_loop: | |
18 | jnz .L\@_fill_rsb_loop | |
19 | mov %eax, %esp | |
20 | .L\@_repl_e\()1: | |
21 | .endm | |
22 | ||
23 | .text | |
24 | _start: | |
25 | ALTERNATIVE |