Flush caches before -running program
authorThomas Preud'homme <robotux@celest.fr>
Thu, 28 Feb 2013 15:40:18 +0000 (16:40 +0100)
committerThomas Preud'homme <robotux@celest.fr>
Mon, 18 Mar 2013 09:08:39 +0000 (10:08 +0100)
commit6ed6a36a51065060bd5e9bb516b85ff796e05f30
tree2ba61aa6f036d4af9ffc7fc1a9b8e3618f67e3cc
parentd9dfd9cded86c42895397e62e2f708229f7c0e56
Flush caches before -running program

On some architectures, ARM for instance, the data and instruction caches
are not coherent with each other. This is a problem for the -run feature
since instructions are written in memory, and are thus written in the
data cache first and then later flushed to the main memory. If the
instructions are executed before they are pushed out of the cache, then
the processor will fetch the old content from the memory and not the
newly generated code. The solution is to flush from the data cache all
the data in the memory region containing the instructions and to
invalidate the same region in the instruction cache.
lib/libtcc1.c
tccrun.c