Lines Matching +full:smp +full:- +full:offset

1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * Copyright (C) 1996-2000 Russell King
10 * Do not include any C declarations in this file - it is included by
21 #include <asm/opcodes-virt.h>
22 #include <asm/asm-offsets.h>
25 #include <asm/uaccess-asm.h>
76 * set to write-allocate (this would need further testing on XScale when WA
127 stmdb sp!, {r0-r3, ip, lr}
131 ldmia sp!, {r0-r3, ip, lr}
143 stmdb sp!, {r0-r3, ip, lr}
147 ldmia sp!, {r0-r3, ip, lr}
265 .pushsection ".alt.smp.init", "a" ;\
267 .long 9998b - . ;\
269 .if . - 9997b == 2 ;\
272 .if . - 9997b != 4 ;\
277 .pushsection ".alt.smp.init", "a" ;\
279 .long 9998b - . ;\
280 W(b) . + (label - 9998b) ;\
289 * this_cpu_offset - load the per-CPU offset of this CPU into
309 * set_current - store the task pointer of this CPU's current task
328 * get_current - load the task pointer of this CPU's current task
347 * reload_current - reload the task pointer of this CPU's current task
374 * SMP data memory barrier
387 #error Incompatible SMP platform
398 * Raw SMP data memory barrier
410 .error "Incompatible SMP platform"
416 * setmode is used to assert to be in svc mode during boot. For v7-M
457 * workaround for possibly broken pre-v6 hardware
458 * (akita, Sharp Zaurus C-1000, PXA270-based)
465 * STRT/LDRT access macros with ARM and Thumb-2 variants
542 .size \name , . - \name
599 .La\@: .long \sym - .Lpc\@
605 movw\c \tmp, #:lower16:\sym - .Lpc\@
606 movt\c \tmp, #:upper16:\sym - .Lpc\@
619 * In Thumb-2 builds, the PC bias depends on whether we are currently
624 .set .Lpc\@, . + (. - .Lb\@)
633 * mov_l - move a constant value or [relocated] address into a register
645 * adr_l - adr pseudo-op with unlimited range
656 * ldr_l - ldr <literal> pseudo-op with unlimited range
667 * str_l - str <literal> pseudo-op with unlimited range
678 .macro __ldst_va, op, reg, tmp, sym, cond, offset
687 * of -/+ 256 MiB, which should be sufficient for the core kernel and
694 .L0_\@: sub\cond \tmp, pc, #8 - \offset
695 .L1_\@: sub\cond \tmp, \tmp, #4 - \offset
698 \op\cond \reg, [\tmp, #\offset]
702 * ldr_va - load a 32-bit word from the virtual address of \sym
704 .macro ldr_va, rd:req, sym:req, cond, tmp, offset=0
706 __ldst_va ldr, \rd, \tmp, \sym, \cond, \offset
708 __ldst_va ldr, \rd, \rd, \sym, \cond, \offset
713 * str_va - store a 32-bit word to the virtual address of \sym
720 * ldr_this_cpu_armv6 - Load a 32-bit word from the per-CPU variable 'sym',
737 * ldr_this_cpu - Load a 32-bit word from the per-CPU variable 'sym'
757 * rev_l - byte-swap a 32-bit value
780 * bl_r - branch and link to register