J'écris un JIT sur ARM Linux qui exécute un jeu d'instructions qui contient du code auto-modifiable. Le jeu d'instructions n'a aucune instruction de vidage de cache (similaire à x86 à cet égard).mprotect vide-t-il le cache d'instructions sur ARM Linux?
Si j'écris du code sur une page, puis que j'appelle mprotect
sur cette page, est-ce suffisant pour invalider le cache d'instructions? Ou dois-je également utiliser le syscall cacheflush
sur ces pages?
Hmm, je cible nominalement ARMv5. Selon le ARM ARM, vous devez vider le cache d'instructions dans le cas d'un code auto-modifiable. Je me demande simplement si mprotect le fera pour moi. –