* src/vm/jit/md.h: Removed.
[cacao.git] / src / vm / jit / powerpc64 / md.c
index e1c516f42f7a29a0d682ad726679d3765d69707a..4b5aab7190c7a19571f3afd0fe6f5f86e6c76dd3 100644 (file)
 #include "md-abi.h"
 
 #include "vm/jit/powerpc64/codegen.h"
+#include "vm/jit/powerpc64/md.h"
 
 #include "vm/exceptions.h"
 #include "vm/global.h"
 
-#include "vm/jit/asmpart.h"
-#include "vm/jit/codegen-common.h"
 #include "vm/jit/jit.h"
-#include "vm/jit/md.h"
 
 
 /* md_init *********************************************************************
@@ -57,25 +55,6 @@ void md_init(void)
 }
 
 
-/* md_stacktrace_get_returnaddress *********************************************
-
-   Returns the return address of the current stackframe, specified by
-   the passed stack pointer and the stack frame size.
-
-*******************************************************************************/
-
-u1 *md_stacktrace_get_returnaddress(u1 *sp, u4 framesize)
-{
-       u1 *ra;
-
-       /* on PowerPC the return address is located in the linkage area */
-
-       ra = *((u1 **) (sp + framesize + LA_LR_OFFSET));
-
-       return ra;
-}
-
-
 /* md_jit_method_patch_address *************************************************
 
    Gets the patch address of the currently compiled method. The offset
@@ -178,106 +157,6 @@ void *md_jit_method_patch_address(void *pv, void *ra, void *mptr)
 }
 
 
-/* md_codegen_get_pv_from_pc ***************************************************
-
-   Machine code:
-
-   7d6802a6    mflr    r11
-   39cbffe0    addi    r14,r11,-32
-
-   or
-
-   7d6802a6    mflr    r11
-   3dcbffff    addis   r14,r11,-1
-   39ce68b0    addi    r14,r13,26800
-
-*******************************************************************************/
-
-u1 *md_codegen_get_pv_from_pc(u1 *ra)
-{
-       u1 *pv;
-       u4  mcode;
-       s4  offset;
-
-       /* get first instruction word after jump */
-
-       mcode = *((u4 *) (ra + 1 * 4));
-
-       /* check if we have 2 instructions (addis, addi) */
-
-       if ((mcode >> 16) == 0x3dcb) {
-               /* get displacement of first instruction (addis) */
-
-               offset = (s4) (mcode << 16);
-
-               /* get displacement of second instruction (addi) */
-
-               mcode = *((u4 *) (ra + 2 * 4));
-
-               /* check for addi instruction */
-
-               assert((mcode >> 16) == 0x39ce);
-
-               offset += (s2) (mcode & 0x0000ffff);
-       }
-       else if ((mcode >> 16) == 0x39cb) {
-               /* get offset of first instruction (addi) */
-
-               offset = (s2) (mcode & 0x0000ffff);
-       }
-       else {
-               vm_abort("md_codegen_get_pv_from_pc: unknown instruction %x", mcode);
-
-               /* keep compiler happy */
-
-               offset = 0;
-       }
-
-       /* calculate PV via RA + offset */
-
-       pv = ra + offset;
-
-       return pv;
-}
-
-
-/* md_cacheflush ***************************************************************
-
-   Calls the system's function to flush the instruction and data
-   cache.
-
-*******************************************************************************/
-
-void md_cacheflush(u1 *addr, s4 nbytes)
-{
-       asm_cacheflush(addr, nbytes);
-}
-
-
-/* md_icacheflush **************************************************************
-
-   Calls the system's function to flush the instruction cache.
-
-*******************************************************************************/
-
-void md_icacheflush(u1 *addr, s4 nbytes)
-{
-       asm_cacheflush(addr, nbytes);
-}
-
-
-/* md_dcacheflush **************************************************************
-
-   Calls the system's function to flush the data cache.
-
-*******************************************************************************/
-
-void md_dcacheflush(u1 *addr, s4 nbytes)
-{
-       asm_cacheflush(addr, nbytes);
-}
-
-
 /* md_patch_replacement_point **************************************************
 
    Patch the given replacement point.
@@ -309,6 +188,7 @@ void md_patch_replacement_point(u1 *pc, u1 *savedmcode, bool revert)
 }
 #endif /* defined(ENABLE_REPLACEMENT) */
 
+
 /*
  * These are local overrides for various environment variables in Emacs.
  * Please do not remove this and leave it at the end of the file, where