diff options
author | Andrew Thoelke <andrew.thoelke@arm.com> | 2014-04-28 12:32:02 +0100 |
---|---|---|
committer | Andrew Thoelke <andrew.thoelke@arm.com> | 2014-05-07 11:29:50 +0100 |
commit | 7935d0a59d439c993b79814ab414d37e4a90d9a6 (patch) | |
tree | b441893641316f785bf782b24ac8877252eb8afb /lib/aarch64 | |
parent | 2f5dcfef1db42f3b073ae657f8a94925abecd768 (diff) |
Access system registers directly in assembler
Instead of using the system register helper functions to read
or write system registers, assembler coded functions should
use MRS/MSR instructions. This results in faster and more
compact code.
This change replaces all usage of the helper functions with
direct register accesses.
Change-Id: I791d5f11f257010bb3e6a72c6c5ab8779f1982b3
Diffstat (limited to 'lib/aarch64')
-rw-r--r-- | lib/aarch64/cpu_helpers.S | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/aarch64/cpu_helpers.S b/lib/aarch64/cpu_helpers.S index 4e5eb5b..abb996d 100644 --- a/lib/aarch64/cpu_helpers.S +++ b/lib/aarch64/cpu_helpers.S @@ -35,13 +35,11 @@ func cpu_reset_handler - mov x19, x30 // lr - /* --------------------------------------------- * As a bare minimal enable the SMP bit. * --------------------------------------------- */ - bl read_midr + mrs x0, midr_el1 lsr x0, x0, #MIDR_PN_SHIFT and x0, x0, #MIDR_PN_MASK cmp x0, #MIDR_PN_A57 @@ -49,9 +47,9 @@ func cpu_reset_handler cmp x0, #MIDR_PN_A53 b.ne smp_setup_end smp_setup_begin: - bl read_cpuectlr + mrs x0, CPUECTLR_EL1 orr x0, x0, #CPUECTLR_SMP_BIT - bl write_cpuectlr + msr CPUECTLR_EL1, x0 isb smp_setup_end: - ret x19 + ret |