From fb8ec7049ccd50fe22f51e8957780fe21af9e54e Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Wed, 23 Apr 2014 16:36:43 -0400 Subject: [PATCH] runtime/arm-{arch.h,linux-os.c}: Sort out i-cache handling. * Kill the function prototype in arm-arch.h, it's clearly been cribbed from PPC which allows us to flush the i-cache from user space. * Use GCC's __clear_cache() function (or whatever it is) to deal with the required semantics in os_flush_icache(). --- src/runtime/arm-arch.h | 2 -- src/runtime/arm-linux-os.c | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/runtime/arm-arch.h b/src/runtime/arm-arch.h index 6207cd6de..43a5878b7 100644 --- a/src/runtime/arm-arch.h +++ b/src/runtime/arm-arch.h @@ -31,6 +31,4 @@ swap_lispobjs(volatile lispobj *dest, lispobj value) #define ARCH_HAS_LINK_REGISTER -extern void arm_flush_icache(os_vm_address_t address, os_vm_size_t length); - #endif /* _ARM_ARCH_H */ diff --git a/src/runtime/arm-linux-os.c b/src/runtime/arm-linux-os.c index 31c193679..a6e39d487 100644 --- a/src/runtime/arm-linux-os.c +++ b/src/runtime/arm-linux-os.c @@ -98,5 +98,7 @@ os_restore_fp_control(os_context_t *context) void os_flush_icache(os_vm_address_t address, os_vm_size_t length) { - /* FIXME: Implement if necessary. */ + os_vm_address_t end_address + = (os_vm_address_t)(((pointer_sized_uint_t) address) + length); + __clear_cache(address, end_address); } -- 2.11.4.GIT