Lines Matching +full:smp +full:- +full:offset
1 /* SPDX-License-Identifier: GPL-2.0 */
17 * Alternative inline assembly for SMP.
22 * SMP alternatives use the same data structures as the other
24 * UP system running a SMP kernel. The existing apply_alternatives()
25 * works fine for patching a SMP kernel for UP.
27 * The SMP alternative tables can be kept after boot and contain both
28 * UP and SMP versions of the instructions to allow switching back to
29 * SMP at runtime, when hotplugging in a new CPU, which is especially
41 ".long 671f - .\n" /* offset */ \
59 ".long 999b - .\n\t" \
64 s32 repl_offset; /* offset to replacement instruction */
107 #define alt_slen "662b-661b"
108 #define alt_total_slen alt_end_marker"b-661b"
109 #define alt_rlen(num) e_replacement(num)"f-"b_replacement(num)"f"
115 ".skip -(((" alt_rlen(num) ")-(" alt_slen ")) > 0) * " \
116 "((" alt_rlen(num) ")-(" alt_slen ")),0x90\n" \
123 * The additional "-" is needed because gas uses a "true" value of -1.
125 #define alt_max_short(a, b) "((" a ") ^ (((" a ") ^ (" b ")) & -(-((" a ") < (" b ")))))"
135 ".skip -((" alt_max_short(alt_rlen(num1), alt_rlen(num2)) " - (" alt_slen ")) > 0) * " \
136 "(" alt_max_short(alt_rlen(num1), alt_rlen(num2)) " - (" alt_slen ")), 0x90\n" \
143 ".skip -((" alt_max_short(alt_max_short(alt_rlen(n1), alt_rlen(n2)), alt_rlen(n3)) \
144 " - (" alt_slen ")) > 0) * " \
146 " - (" alt_slen ")), 0x90\n" \
150 " .long 661b - .\n" /* label */ \
151 " .long " b_replacement(num)"f - .\n" /* new instruction */ \
289 .long 672b - .
304 .long .Lannotate_\@ - .
315 .long \orig - .
316 .long \alt - .
332 .skip -(((144f-143f)-(141b-140b)) > 0) * ((144f-143f)-(141b-140b)),0x90
336 altinstruction_entry 140b,143f,\feature,142b-140b,144f-143f
346 #define old_len 141b-140b
347 #define new_len1 144f-143f
348 #define new_len2 145f-144f
354 * The additional "-" is needed because gas uses a "true" value of -1.
356 #define alt_max_short(a, b) ((a) ^ (((a) ^ (b)) & -(-((a) < (b)))))
368 .skip -((alt_max_short(new_len1, new_len2) - (old_len)) > 0) * \
369 (alt_max_short(new_len1, new_len2) - (old_len)),0x90
373 altinstruction_entry 140b,143f,\feature1,142b-140b,144f-143f
374 altinstruction_entry 140b,144f,\feature2,142b-140b,145f-144f