PR148 again: don't defuse IF_LCMPxx
[cacao.git] / src / vm / jit / builtintable.inc
index 28d6921603c03847c0a7b72f05b2d5717fa60823..4b8c219a248b04e673e91c5c861a060ec2639c10 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/jit/builtintable.inc - tables of builtin functions
 
-   Copyright (C) 1996-2005, 2006, 2007, 2008
+   Copyright (C) 1996-2010
    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
 
    This file is part of CACAO.
@@ -27,7 +27,7 @@
 
 #include "arch.h"
 
-#include "threads/lock-common.h"
+#include "threads/lock.hpp"
 
 #include "vm/jit/builtin.hpp"
 #include "vm/jit/jit.hpp"
@@ -49,6 +49,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -62,6 +63,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -75,6 +77,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -88,10 +91,26 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
 
+       {
+               ICMD_LCMP,
+               0,
+               BUILTIN_lcmp,
+               NULL,
+               NULL,
+               "lcmp",
+               "(JJ)I",
+               NULL,
+               NULL,
+               NULL,
+               NULL,
+               NULL
+       },
+
 #if !SUPPORT_DIVISION || defined(DISABLE_GC)
        {
                ICMD_IDIV,
@@ -104,6 +123,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -117,6 +137,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -133,6 +154,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -146,6 +168,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -161,6 +184,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -174,6 +198,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 
@@ -191,6 +216,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 
@@ -206,6 +232,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -222,6 +249,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -237,6 +265,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -250,6 +279,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -263,6 +293,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -276,6 +307,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -289,6 +321,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -302,6 +335,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -315,6 +349,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -328,6 +363,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -341,6 +377,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -354,6 +391,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -368,6 +406,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -381,6 +420,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -394,6 +434,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -407,6 +448,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 
@@ -422,7 +464,8 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
-               NULL
+               NULL,
+               EMIT_FASTPATH_monitor_enter
        },
        {
                ICMD_MONITOREXIT,
@@ -435,7 +478,8 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
-               NULL
+               NULL,
+               EMIT_FASTPATH_monitor_exit
        },
 #endif
 
@@ -453,6 +497,7 @@ static builtintable_entry builtintable_internal[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 };
@@ -474,6 +519,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -490,6 +536,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -503,6 +550,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -516,6 +564,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !(SUPPORT_LONG && SUPPORT_LONG_LOGICAL) */
@@ -532,6 +581,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -545,6 +595,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -558,6 +609,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !(SUPPORT_LONG && SUPPORT_LONG_SHIFT) */
@@ -574,6 +626,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -587,6 +640,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -600,6 +654,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !(SUPPORT_LONG && SUPPORT_LONG_ADD) */
@@ -616,6 +671,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -632,6 +688,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -648,6 +705,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -664,6 +722,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -680,6 +739,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -696,6 +756,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -712,6 +773,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -728,6 +790,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -744,6 +807,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -763,6 +827,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -776,6 +841,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -789,6 +855,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -802,6 +869,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -815,6 +883,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !SUPPORT_FLOAT */
@@ -831,6 +900,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -844,6 +914,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !SUPPORT_FLOAT || !SUPPORT_FLOAT_CMP */
@@ -863,6 +934,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -876,6 +948,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -889,6 +962,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -902,6 +976,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -915,6 +990,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !SUPPORT_DOUBLE */
@@ -931,6 +1007,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -944,6 +1021,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !SUPPORT_DOUBLE || !SUPPORT_DOUBLE_CMP */
@@ -963,6 +1041,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
        {
@@ -976,6 +1055,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif /* !(SUPPORT_FLOAT && SUPPORT_DOUBLE) */
@@ -994,6 +1074,7 @@ static builtintable_entry builtintable_automatic[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 };
@@ -1017,6 +1098,7 @@ static builtintable_entry builtintable_function[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 
@@ -1037,6 +1119,7 @@ static builtintable_entry builtintable_function[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 #endif
@@ -1054,6 +1137,7 @@ static builtintable_entry builtintable_function[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 
@@ -1070,6 +1154,7 @@ static builtintable_entry builtintable_function[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 
@@ -1088,6 +1173,7 @@ static builtintable_entry builtintable_function[] = {
                NULL,
                NULL,
                NULL,
+               NULL,
                NULL
        },
 };