src/vm/cycles-stats.h: Switched from asm_get_cycle_count to md_get_cycle_count.
[cacao.git] / src / vm / jit / i386 / asmpart.S
index af29ffea9606000826c987576f71b1724c1ee063..b9be6e191288c242139bfc018248b49e875043d0 100644 (file)
@@ -62,7 +62,9 @@
        .globl asm_compare_and_swap
        .globl asm_memory_barrier
 
-       .globl asm_get_cycle_count
+#if defined(ENABLE_ESCAPE_CHECK)
+       .globl asm_escape_check
+#endif
 
 
 /* asm_md_init *****************************************************************
@@ -120,7 +122,7 @@ asm_vm_call_method_long:
 asm_vm_call_method_float:
 asm_vm_call_method_double:
        push    bp
-       mov     sp,bp                       /* save stackptr                      */
+       mov     sp,bp                       /* save stack pointer                 */
        sub     $(4*4),sp                   /* create stackframe                  */
        and     $0xfffffff0,sp              /* align stack to 16-byte             */
 
@@ -412,16 +414,29 @@ asm_memory_barrier:
        lock; add $0,0(sp)
        ret
 
-               
-/* asm_get_cycle_count *********************************************************
 
-   Get the current time-stamp counter from the CPU.
+#if defined(ENABLE_ESCAPE_CHECK)
+asm_escape_check:
+       sub     $24,%esp
 
-*******************************************************************************/
+       mov     t0, 4(%esp)
+       mov     itmp1, 8(%esp)
+       mov     itmp2, 12(%esp)
+       mov     itmp3, 16(%esp)
+
+       mov     28(%esp), itmp1
+       mov     itmp1, (%esp)
 
-asm_get_cycle_count:
-       rdtsc
+       call    escape_analysis_escape_check
+
+       mov     4(%esp), t0
+       mov     8(%esp), itmp1
+       mov     12(%esp), itmp2
+       mov     16(%esp), itmp3
+
+       add     $24,sp
        ret
+#endif
 
 
 /* disable exec-stacks ********************************************************/
@@ -430,7 +445,6 @@ asm_get_cycle_count:
        .section .note.GNU-stack,"",%progbits
 #endif
 
-
 /*
  * 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