aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/arch/aarch64/odp/api
AgeCommit message (Collapse)Author
2022-09-09linux-gen: aarch64: atomic: avoid conversion warningsJere Leppänen
Use an explicit cast to avoid conversion warnings, when application is compiled with -Wconversion option. Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-10-21linux-gen: fix braced-groups within expressions build errorsMatias Elo
Fix "ISO C forbids braced-groups within expressions" errors when building with 'pedantic' option. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-10-12linux-gen: atomic: explicitly use staddl for 64-bit add/sub release opsMatias Elo
GCC generates LDADDL instructions when using __atomic_fetch_add() on aarch64. Explicitly use STADDL to implement odp_atomic_add_rel_u64() and odp_atomic_sub_rel_u64() functions for better performance. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Govindarajan Mohandoss <govindarajan.mohandoss@arm.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-10-12linux-gen: atomic: explicitly use staddl for 32-bit add/sub release opsMatias Elo
GCC generates LDADDL instructions when using __atomic_fetch_add() on aarch64. Explicitly use STADDL to implement odp_atomic_add_rel_u32() and odp_atomic_sub_rel_u32() functions for better performance. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Govindarajan Mohandoss <govindarajan.mohandoss@arm.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-10-04linux-gen: atomic: use STADD explicitly for aarch64 atomic add operationsMalvika Gupta
By default, GCC generates the LDADD/LDADDL instruction for atomic add/sub/inc/dec functions. These functions could also be implemented on ARMv8.1 ISA (and above) with the store version, STADD/STADDL instruction which result in better performance for fastpath applications. Signed-off-by: Malvika Gupta <Malvika.Gupta@arm.com> Reviewed-by: Govindarajan Mohandoss <govindarajan.mohandoss@arm.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
2021-09-30linux-gen: cpu: refactor inlining codeMatias Elo
Refactor CPU ABI and implementation files to follow common project inlining style. odp_cpu_pause() function is now defined only once per architecture. After this clean-up it's simpler for an implementation to add inlined versions of CPU module functions. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2021-09-03linux-gen: atomic: add missing inline function includeMatias Elo
Previously, inlined atomic functions (atomic_inlines.h) were not included through the API headers in non-ABI compat mode on aarch64 platforms. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-05-31linux-gen: time: implement strict time stamp read functionsPetri Savolainen
Implemented strict versions of local and global time stamp read functions. Moved time register read code into inline functions on ARMv8. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
2021-04-16linux-gen: detect cpu cache line size during configureMatias Elo
Detect CPU cache line size automatically on aarch64 systems when abi- compatibility is disabled. Automatic cache line size detection is disabled when cross-compiling. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-03-19linux-gen: atomic: optimize arm64 128-bit implementationMatias Elo
Optimize arm64 specific 128-bit atomics implementation. The init function doesn't have to be atomic and CAS operations' 'old_val' needs to be updated only on failure. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-03-19linux-gen: atomic: reorganize architecture specific implementationsMatias Elo
Move architecture specific atomic function implementations to separate header files. Enables 128-bit atomic function inlining. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2021-02-23linux-gen: atomic: add 128 bit atomic apisGovindarajan Mohandoss
Add 128 bit atomic compare-and-swap operations. Signed-off-by: Govindarajan Mohandoss <govindarajan.mohandoss@arm.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com> Tested-by: Malvika Gupta <Malvika.Gupta@arm.com>
2021-01-26linux-gen: hash: add armv8-a crc32 hash functionsMalvika Gupta
Add Armv8-A architecture-specific CRC32 and CRC32C extensions. Signed-off-by: Malvika Gupta <Malvika.Gupta@arm.com> Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Govindarajan Mohandoss <govindarajan.mohandoss@arm.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
2018-02-26update Linaro Copyrights to 2018 year part2Maxim Uvarov
update Copyrights with the same script in rebased branch. Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-01-18linux-gen, include: drop interm _ODP_CACHE_LINE_SIZE defineDmitry Eremin-Solenikov
_ODP_CACHE_LINE_SIZE is only used to define ODP_CACHE_LINE_SIZE. Drop interim define and make cpu.h directly define ODP_CACHE_LINE_SIZE. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-01-18linux-gen, include: switch cpu.h to api+abiDmitry Eremin-Solenikov
Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2017-10-03linux-gen: split arm into arm and aarch64Dmitry Eremin-Solenikov
In preparation to arch-file cleanup split ARM architecture into 32-bit ARM and AArch64. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>