* src/vm/jit/jit.h (ICMD_CHECKNULL): Renamed to ICMD_CHECKNULL_POP.
authortwisti <none@none>
Wed, 15 Nov 2006 12:25:13 +0000 (12:25 +0000)
committertwisti <none@none>
Wed, 15 Nov 2006 12:25:13 +0000 (12:25 +0000)
* src/vm/jit/alpha/codegen.c: Likewise.
* src/vm/jit/i386/codegen.c: Likewise.
* src/vm/jit/mips/codegen.c: Likewise.
* src/vm/jit/powerpc/codegen.c: Likewise.
* src/vm/jit/powerpc64/codegen.c: Likewise.
* src/vm/jit/sparc64/codegen.c: Likewise.
* src/vm/jit/x86_64/codegen.c: Likewise.
* src/vm/jit/intrp/codegen.c: Likewise.

* src/vm/jit/stack.c: Likewise.
* src/vm/jit/show.c: Likewise.

* src/vm/jit/allocator/simplereg.c: Likewise.

* src/vm/jit/verify/typecheck-stackbased-gen.inc (ICMD_CHECKNULL):
Removed.
* src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.

14 files changed:
src/vm/jit/allocator/simplereg.c
src/vm/jit/alpha/codegen.c
src/vm/jit/i386/codegen.c
src/vm/jit/intrp/codegen.c
src/vm/jit/jit.h
src/vm/jit/mips/codegen.c
src/vm/jit/powerpc/codegen.c
src/vm/jit/powerpc64/codegen.c
src/vm/jit/show.c
src/vm/jit/sparc64/codegen.c
src/vm/jit/stack.c
src/vm/jit/verify/typecheck-stackbased-gen.inc
src/vm/jit/verify/typecheck-variablesbased-gen.inc
src/vm/jit/x86_64/codegen.c

index 733f9256ca4a43766a06db5a23b484f96c45e4fc..9b1d3d64814d5b10797a021423761d253da1eac3 100644 (file)
    Contact: cacao@complang.tuwien.ac.at
 
    Authors: Andreas Krall
-
-   Changes: Stefan Ring
+            Stefan Ring
             Christian Thalinger
             Christian Ullrich
             Michael Starzinger
             Edwin Steiner
 
-   $Id: simplereg.c 5925 2006-11-05 23:11:27Z edwin $
+   $Id: simplereg.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -1414,7 +1413,6 @@ static void simplereg_allocate_temporaries(jitdata *jd)
                                        VAROP(iptr->dst)->vv.regoff = 0;
 #endif
                                case ICMD_NOP:
-                               case ICMD_CHECKNULL:
                                case ICMD_IINC:
                                case ICMD_RET:
                                case ICMD_RETURN:
@@ -1486,6 +1484,7 @@ static void simplereg_allocate_temporaries(jitdata *jd)
                                        /* pop 1 push 0 */
 
                                case ICMD_POP:
+                               case ICMD_CHECKNULL_POP:
 
                                case ICMD_IRETURN:
                                case ICMD_LRETURN:
index e7453d21b93ddc22de12ea883f9a700ff16f5343..629a9940d9c63055bd262d34afe48e041e523967 100644 (file)
@@ -31,7 +31,7 @@
             Christian Ullrich
             Edwin Steiner
 
-   $Id: codegen.c 5953 2006-11-11 18:45:27Z twisti $
+   $Id: codegen.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -403,7 +403,7 @@ bool codegen(jitdata *jd)
                case ICMD_NOP:        /* ...  ==> ...                                 */
                        break;
 
-               case ICMD_CHECKNULL:  /* ..., objectref  ==> ..., objectref           */
+               case ICMD_CHECKNULL_POP: /* ..., objectref  ==> ...                   */
 
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
                        M_BEQZ(s1, 0);
index 6b9417ef04c4b0ffe8236444effcf50bfad30f0b..529a7cdfb75fdbd3219c065815189e3d20dfff88 100644 (file)
@@ -30,7 +30,7 @@
             Christian Ullrich
             Edwin Steiner
 
-   $Id: codegen.c 5950 2006-11-11 17:08:14Z edwin $
+   $Id: codegen.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -594,7 +594,7 @@ bool codegen(jitdata *jd)
                case ICMD_NOP:        /* ...  ==> ...                                 */
                        break;
 
-               case ICMD_CHECKNULL:  /* ..., objectref  ==> ..., objectref           */
+               case ICMD_CHECKNULL_POP: /* ..., objectref  ==> ...                   */
 
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
                        M_TEST(s1);
index 3c2b1dc095464ecdc01bb9dc2e0f84be84bb700d..eb8bbd1d0b74726196cfa1cd498912be96a5d09e 100644 (file)
 
    Authors: Christian Thalinger
             Anton Ertl
-                       
-   Changes: Edwin Steiner
+            Edwin Steiner
 
-   $Id: codegen.c 5835 2006-10-26 11:29:42Z edwin $
+   $Id: codegen.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -415,9 +414,10 @@ switch_again:
                case ICMD_NOP:        /* ...  ==> ...                                 */
                        break;
 
-               case ICMD_CHECKNULL:  /* ..., objectref  ==> ..., objectref           */
+               case ICMD_CHECKNULL_POP: /* ..., objectref  ==> ...                   */
 
                        gen_CHECKNULL(cd);
+                       gen_POP(cd);
                        break;
 
                /* constant operations ************************************************/
index 4f8ec104ad4bbdd1d61d7de04b17994daf2a148f..2a96d9a1a83f1514c8b869ee19e2abe544557586 100644 (file)
 
    Authors: Andreas Krall
             Reinhard Grafl
+            Christian Thalinger
+            Edwin Steiner
 
-   Changes: Christian Thalinger
-                       Edwin Steiner
-
-   $Id: jit.h 5964 2006-11-12 13:46:44Z edwin $
+   $Id: jit.h 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -601,13 +600,12 @@ extern int stackreq[256];
 #define ICMD_ACONST            1        /* val.a = constant                   */
 
 #define JAVA_ICONST_M1         2
-#define ICMD_CHECKNULL         2
+#define ICMD_CHECKNULL_POP     2
 
 #define JAVA_ICONST_0          3
 #define ICMD_ICONST            3        /* val.i = constant                   */
 
 #define JAVA_ICONST_1          4
-#define ICMD_CHECKNULL_POP     4
 
 #define JAVA_ICONST_2          5
 #define ICMD_IDIVPOW2          5        /* val.i = constant                   */
index 77d8b10eedeefecacfed7a17d064d9807b5403eb..351bd101f6727e7efb279820d74c7f112b1badf4 100644 (file)
@@ -34,7 +34,7 @@
    This module generates MIPS machine code for a sequence of
    intermediate code commands (ICMDs).
 
-   $Id: codegen.c 5930 2006-11-06 21:12:52Z twisti $
+   $Id: codegen.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -409,9 +409,10 @@ bool codegen(jitdata *jd)
                case ICMD_NOP:        /* ...  ==> ...                                 */
                        break;
 
-               case ICMD_CHECKNULL:  /* ..., objectref  ==> ..., objectref           */
+               case ICMD_CHECKNULL_POP: /* ..., objectref  ==> ...                   */
 
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
+                       /* XXX this one must always be emitted */
                        emit_nullpointer_check(cd, s1);
                        break;
 
index ac12a83af63173795c07b912d0efb42f095a1541..bfcb96f1dfc28d087ac5db5d853c931ff4d020c3 100644 (file)
@@ -30,7 +30,7 @@
             Christian Ullrich
             Edwin Steiner
 
-   $Id: codegen.c 5956 2006-11-12 12:55:34Z twisti $
+   $Id: codegen.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -495,7 +495,7 @@ bool codegen(jitdata *jd)
                case ICMD_INLINE_END:
                        break;
 
-               case ICMD_CHECKNULL:  /* ..., objectref  ==> ..., objectref           */
+               case ICMD_CHECKNULL_POP: /* ..., objectref  ==> ...                   */
 
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
                        M_TST(s1);
index 58cde8997b1a08dd1aadda28992f10197a2c8a39..fcebf4e02b3b8962af50d79988667af918857eaa 100644 (file)
@@ -1,4 +1,4 @@
-/* src/vm/jit/powerpc64/codegen.c - machine code generator for 32-bit PowerPC
+/* src/vm/jit/powerpc64/codegen.c - machine code generator for 64-bit PowerPC
 
    Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
    C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
 
    Authors: Andreas Krall
             Stefan Ring
-
-   Changes: Christian Thalinger
+            Christian Thalinger
             Christian Ullrich
             Edwin Steiner
-           Roland Lezuo
+            Roland Lezuo
 
-   $Id: codegen.c 5978 2006-11-13 21:43:41Z tbfg $
+   $Id: codegen.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -408,13 +407,13 @@ bool codegen(jitdata *jd)
 
                        MCODECHECK(64);   /* an instruction usually needs < 64 words      */
 
-                       switch (iptr->opc) {
-                       case ICMD_NOP:    /* ...  ==> ...                                 */
-                       case ICMD_INLINE_START:
-                       case ICMD_INLINE_END:
-                               break;
+               switch (iptr->opc) {
+               case ICMD_NOP:        /* ...  ==> ...                                 */
+               case ICMD_INLINE_START:
+               case ICMD_INLINE_END:
+                       break;
 
-               case ICMD_CHECKNULL:  /* ..., objectref  ==> ..., objectref           */
+               case ICMD_CHECKNULL_POP: /* ..., objectref  ==> ...                   */
 
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
                        M_TST(s1);
index 371fbb9870544fedd2830ad26a46fe5e9ac8931a..75b8a6d8590967d93bd51892bacd9db81641af66 100644 (file)
@@ -25,8 +25,7 @@
    Contact: cacao@cacaojvm.org
 
    Authors: Andreas Krall
-
-   Changes: Edwin Steiner
+            Edwin Steiner
             Christian Thalinger
             Christian Ullrich
 
@@ -895,7 +894,6 @@ void show_icmd(jitdata *jd, instruction *iptr, bool deadcode, int stage)
        switch (opcode) {
 
        case ICMD_POP:
-       case ICMD_CHECKNULL:
        case ICMD_CHECKNULL_POP:
                SHOW_S1(iptr);
                break;
index 01b3fabab68c2370afad58b180e1271e58570b21..20d0dbcf81bb159f1d29a106ae992d9799b536d0 100644 (file)
@@ -27,8 +27,8 @@
    Authors: Andreas Krall
             Reinhard Grafl
             Alexander Jordan
-
-   Changes: Edwin Steiner
+            Edwin Steiner
+            Christian Thalinger
 
    $Id: codegen.c 4644 2006-03-16 18:44:46Z edwin $
 
index dc1c6730f92a10e922082df53748e6185b0c5b5f..2e97aeaa2273e6711c4af30855ed718908e8753d 100644 (file)
@@ -29,7 +29,7 @@
             Christian Thalinger
             Christian Ullrich
 
-   $Id: stack.c 5958 2006-11-12 13:21:07Z edwin $
+   $Id: stack.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -1469,7 +1469,6 @@ bool stack_reanalyse_block(stackdata_t *sd)
                                superblockend = true;
                                break;
 
-                       case ICMD_CHECKNULL:
                        case ICMD_PUTSTATICCONST:
                                break;
 
@@ -1570,6 +1569,7 @@ bool stack_reanalyse_block(stackdata_t *sd)
                        case ICMD_PUTSTATIC:
                        case ICMD_PUTFIELDCONST:
                        case ICMD_POP:
+                       case ICMD_CHECKNULL_POP:
                                RELOCATE(iptr->s1.varindex);
                                break;
 
@@ -2321,14 +2321,6 @@ icmd_NOP:
                                                OP0_0;
                                                break;
 
-                                       case ICMD_CHECKNULL:
-                                               coalescing_boundary = sd.new;
-                                               COUNT(count_check_null);
-                                               USE_S1(TYPE_ADR);
-                                               CLR_SX;
-                                               iptr->dst.varindex = iptr->s1.varindex;
-                                               break;
-
                                        case ICMD_RET:
                                                j = iptr->s1.varindex = 
                                                        jd->local_map[iptr->s1.varindex * 5 + TYPE_ADR];
@@ -3448,6 +3440,12 @@ store_tail:
                                                OP1_0_ANY;
                                                break;
 
+                                       case ICMD_CHECKNULL_POP:
+                                               coalescing_boundary = sd.new;
+                                               COUNT(count_check_null);
+                                               OP1_0(TYPE_ADR);
+                                               break;
+
                                        case ICMD_IRETURN:
                                        case ICMD_LRETURN:
                                        case ICMD_FRETURN:
index a1abfd95e2ef44101a892e787b4d7342fccc364f..096c92d84423c3c76b472df750cdaf07174a0aa6 100644 (file)
   GENERATED  
   GENERATED  
 #              undef DST
-  GENERATED  
-  GENERATED  
-  GENERATED  case ICMD_CHECKNULL:
-  GENERATED    /* (A--A) */
-  GENERATED    maythrow = true;
-  GENERATED    CHECK_STACK_DEPTH(1);
-  GENERATED    CHECK_STACK_TYPE(stack[0], TYPE_ADR);
-  GENERATED    break;
   GENERATED  
   GENERATED  
   GENERATED  case ICMD_ICONST:
index 6c179fe5ef2172e355203cd3e42c1493ad040906..865a5bff0a5770d18cb55de68a623ee6b92112aa 100644 (file)
   GENERATED  
   GENERATED  
 #              undef DST
-  GENERATED  
-  GENERATED  
-  GENERATED  case ICMD_CHECKNULL:
-  GENERATED    /* (A--A) */
-  GENERATED    maythrow = true;
-  GENERATED    VAROP(iptr->dst)->type = TYPE_ADR;
-  GENERATED    break;
   GENERATED  
   GENERATED  
   GENERATED  case ICMD_ICONST:
index 23732a07cb77db4799f62210ee8c414da6ecdda9..129c3bdf27e5b2e4476a7b4221cab35f332cbc98 100644 (file)
@@ -29,7 +29,7 @@
             Christian Ullrich
             Edwin Steiner
 
-   $Id: codegen.c 5945 2006-11-10 16:41:12Z twisti $
+   $Id: codegen.c 5980 2006-11-15 12:25:13Z twisti $
 
 */
 
@@ -430,11 +430,11 @@ bool codegen(jitdata *jd)
                case ICMD_NOP:        /* ...  ==> ...                                 */
                case ICMD_POP:        /* ..., value  ==> ...                          */
                case ICMD_POP2:       /* ..., value, value  ==> ...                   */
-               case ICMD_INLINE_START: /* internal ICMDs                         */
+               case ICMD_INLINE_START:
                case ICMD_INLINE_END:
                        break;
 
-               case ICMD_CHECKNULL:  /* ..., objectref  ==> ..., objectref           */
+               case ICMD_CHECKNULL_POP: /* ..., objectref  ==> ...                   */
 
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
                        M_TEST(s1);