#include "vm/types.h"
#include "vm/jit/i386/codegen.h"
+#include "vm/jit/i386/md.h"
#include "mm/memory.h"
#include "native/native.h"
-#include "vm/builtin.h"
+#include "vm/jit/builtin.hpp"
#include "vm/class.h"
-#include "vm/field.h"
+#include "vm/field.hpp"
#include "vm/initialize.h"
#include "vm/options.h"
#include "vm/references.h"
#include "vm/resolve.h"
-#include "vm/jit/patcher-common.h"
+#include "vm/jit/patcher-common.hpp"
-#define PATCH_BACK_ORIGINAL_MCODE *((u2 *) pr->mpc) = (u2) pr->mcode
+#define PATCH_BACK_ORIGINAL_MCODE \
+ do { \
+ *((uint16_t*) pr->mpc) = (uint16_t) pr->mcode; \
+ md_icacheflush((void*) pr->mpc, PATCHER_CALL_SIZE); \
+ } while (0)
/* patcher_patch_code **********************************************************
/* patch super class' vftbl */
*((ptrint *) (ra + 1)) = (ptrint) c->vftbl;
- *((ptrint *) (ra + 5 + 6 + 6 + 2 + 1)) = (ptrint) c->vftbl;
return true;
}