* src/vm/jit/code.c (code_find_codeinfo_for_pc_nocheck): Added.
authormichi <none@none>
Sun, 11 Mar 2007 23:35:33 +0000 (23:35 +0000)
committermichi <none@none>
Sun, 11 Mar 2007 23:35:33 +0000 (23:35 +0000)
* src/vm/jit/code.h (code_find_codeinfo_for_pc_nocheck): Added prototype.

--HG--
branch : exact-gc

src/vm/jit/code.c
src/vm/jit/code.h

index fb88d79a427b763431466aee1f84bbe9fbc0fa39..baccfd4935275049360cd33fc36874617f3cd693 100644 (file)
@@ -129,6 +129,36 @@ codeinfo *code_find_codeinfo_for_pc(u1 *pc)
 }
 
 
+/* code_find_codeinfo_for_pc ***************************************************
+
+   Return the codeinfo for the compilation unit that contains the
+   given PC. This method does not check the return value and is used
+   by the GC.
+
+   IN:
+       pc...............machine code position
+
+   RETURN VALUE:
+       the codeinfo * for the given PC, or NULL
+
+*******************************************************************************/
+
+codeinfo *code_find_codeinfo_for_pc_nocheck(u1 *pc)
+{
+       codeinfo *code;
+       u1 *pv;
+
+       pv = codegen_get_pv_from_pc_nocheck(pc);
+
+       if (pv == NULL)
+               return NULL;
+
+       code = *(codeinfo **)(pv + CodeinfoPointer);
+
+       return code;
+}
+
+
 /* code_get_methodinfo_for_pv **************************************************
 
    Return the methodinfo for the given PV.
index 376b965243ecb924f7bfe1254bfa577aeb3f621e..302428c75060e197e33e21ec17e7509796a91901 100644 (file)
@@ -117,6 +117,7 @@ codeinfo *code_codeinfo_new(methodinfo *m);
 void code_codeinfo_free(codeinfo *code);
 
 codeinfo *code_find_codeinfo_for_pc(u1 *pc);
+codeinfo *code_find_codeinfo_for_pc_nocheck(u1 *pc);
 
 methodinfo *code_get_methodinfo_for_pv(u1 *pv);