From 8a7e5e881f27e9ff54f7707806fb3a4609000ba2 Mon Sep 17 00:00:00 2001 From: Guillaume Emont Date: Wed, 28 Nov 2012 20:15:26 +0100 Subject: [PATCH] mips: implement flush_cache, fixing segfaults on actual hardware --- orc/orcprogram-mips.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/orc/orcprogram-mips.c b/orc/orcprogram-mips.c index ed85bf4..f5d8cb9 100644 --- a/orc/orcprogram-mips.c +++ b/orc/orcprogram-mips.c @@ -11,6 +11,8 @@ void orc_compiler_orc_mips_assemble (OrcCompiler *compiler); const char * orc_compiler_orc_mips_get_asm_preamble (void); +void orc_mips_flush_cache (OrcCode *code); + /* in orcrules-mips.c */ void orc_compiler_orc_mips_register_rules (OrcTarget *target); @@ -28,6 +30,9 @@ static OrcTarget orc_mips_target = { { { 0 } }, 0, orc_compiler_orc_mips_get_asm_preamble, + NULL, + NULL, + orc_mips_flush_cache, }; enum { @@ -652,3 +657,10 @@ usual_case: orc_mips_emit_epilogue (compiler, stack_size); } +void +orc_mips_flush_cache (OrcCode *code) +{ +#ifdef HAVE_MIPSEL + __clear_cache (code->code, code->code + code->code_size); +#endif +} -- 2.7.4