1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/cpu/atmega_common/include
Marian Buschsieweke 9e566370bf
cpu/atmega_common: Fixed irq_arch implementation
The inline assembly implementation was badly in need of improvement.

- irq_disable() took 2 CPU cycles more than needed
    - The current interrupt state was stored in a temporary register and
      afterwards copied to the target register, rather than storing it in the
      target register right away
    - The lower bits of the state were cleared (as they have no meaning for the
      interrupt status), but the API purposely never required such things from
      implementations.
- irq_restore() took 5 CPU cycles. This was reduced to 3 CPU cycles (or 2 CPU
  cycles in the best case)
2020-05-26 15:19:14 +02:00
..
atmega_gpio.h cpu/atmega_common: Restructured code 2019-11-12 20:15:59 +01:00
atmega_regs_common.h cpu/atmega32u4: add support for ATmega32U4 2019-05-24 15:12:47 +02:00
c11_atomics_compat_cpu.hpp cpu: Platform specific C11 atomics compat headers 2019-10-24 23:08:36 +02:00
cpu_conf.h cpu/atmega_common: Make irq_arch inline-able 2020-05-17 18:41:11 +02:00
cpu.h cpu/atmega_common: Drop legacy include 2020-05-15 11:24:28 +02:00
irq_arch.h cpu/atmega_common: Fixed irq_arch implementation 2020-05-26 15:19:14 +02:00
periph_cpu_common.h doc: use @name for doxygen groups 2020-01-28 15:46:09 +01:00