zephyr/arch/arm/core/cortex_m
Stephanos Ioannidis 734fa185c8 arch: arm: cortex_m: Use Thumb-1 compatible 'mov reg, imm' mnemonic
The ARM Thumb-1 instruction set, used by ARMv6-M and ARMv8-M Baseline
cores, does not have a valid encoding for "immediate-to-register move
without affecting flags" instruction (i.e. `mov reg, imm`), and the only
valid variant of immediate-to-register move instruction for it is `movs`,
which affects the flags.

Since none of the register initialisation instructions used here are
flag-sensitive in their context, this commit changes `mov` to `movs`.

This fixes the compilation errors with Clang/LLVM, which is more picky
about the `mov` mnemonic usage and prints out an "invalid instruction"
error when `mov reg, imm` is specified in Thumb-1 mode.

Note that GNU assembler implicitly converts `mov reg, imm` to `movs reg,
imm` when assembling in Thumb-1 mode.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2024-12-13 11:35:06 +01:00
..
cmse
tz
__aeabi_read_tp.S
cache.c cache: add new interface arch_cache_init() for initializing cache 2024-09-17 20:05:22 -04:00
CMakeLists.txt kernel: arch: move arch_swap() declaration 2024-12-11 21:33:49 +01:00
coredump.c arch: define struct arch_esf and deprecate z_arch_esf_t 2024-06-04 14:02:51 -05:00
cpu_idle.c arch: use same syntax for custom arch calls 2024-08-12 12:43:36 +02:00
debug.c arm: init null pointer detection in prep_c, do not use SYS_INIT 2024-09-17 20:05:22 -04:00
exc_exit.c arch: arm: cortex_m: Only trigger context switch if thread is preemptible 2024-04-15 09:09:28 -07:00
fault_s.S
fault.c arch: arm: rename CPU_HAS_NXP_MPU to align with binding 2024-12-06 22:23:06 +01:00
fpu.c
irq_init.c
irq_manage.c arch: arm: cortex_m: update inline comment pointing to isr_wrapper.* 2024-06-12 18:29:12 -04:00
irq_relay.S arch: arm: cortex-m: Change character used to mark immediate operand 2024-05-03 07:28:52 -04:00
isr_wrapper.c pm: Deprecate z_pm_save_idle_exit 2024-05-27 02:10:03 -07:00
Kconfig kconfig: replace known integer constants with variables 2024-07-27 20:49:15 +03:00
pm_s2ram.c arch: arm: cortex_m: pm_s2ram: Rework S2RAM mark functions 2024-10-25 13:58:37 +02:00
pm_s2ram.S arch: arm: cortex_m: pm_s2ram: add support for all architectures 2024-11-16 14:00:44 -05:00
prep_c.c arch: arm: cortex_m: Include TBLBASE in VTOR mask if present 2024-12-10 03:16:23 +00:00
relay_vector_table.ld
reset.S arch: arm: replace PLATFORM_SPECIFIC_INIT with PLATFORM_RESET_HOOK 2024-09-09 10:07:33 +02:00
scb.c arch: arm: rename CPU_HAS_NXP_MPU to align with binding 2024-12-06 22:23:06 +01:00
semihost.c
swap_helper.S arch: deprecate _current 2024-11-23 20:12:24 -05:00
thread_abort.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
thread.c arch: arm: cortex_m: Use Thumb-1 compatible 'mov reg, imm' mnemonic 2024-12-13 11:35:06 +01:00
timing.c arch: arm: cleanup of soc flags in arch 2024-11-16 15:56:11 -05:00
vector_table_pad.ld
vector_table.h
vector_table.S
vt_pointer_section.ld