* 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.
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 $
*/
VAROP(iptr->dst)->vv.regoff = 0;
#endif
case ICMD_NOP:
- case ICMD_CHECKNULL:
case ICMD_IINC:
case ICMD_RET:
case ICMD_RETURN:
/* pop 1 push 0 */
case ICMD_POP:
+ case ICMD_CHECKNULL_POP:
case ICMD_IRETURN:
case ICMD_LRETURN:
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 $
*/
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);
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 $
*/
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);
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 $
*/
case ICMD_NOP: /* ... ==> ... */
break;
- case ICMD_CHECKNULL: /* ..., objectref ==> ..., objectref */
+ case ICMD_CHECKNULL_POP: /* ..., objectref ==> ... */
gen_CHECKNULL(cd);
+ gen_POP(cd);
break;
/* constant operations ************************************************/
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 $
*/
#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 */
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 $
*/
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;
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 $
*/
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);
-/* 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 $
*/
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);
Contact: cacao@cacaojvm.org
Authors: Andreas Krall
-
- Changes: Edwin Steiner
+ Edwin Steiner
Christian Thalinger
Christian Ullrich
switch (opcode) {
case ICMD_POP:
- case ICMD_CHECKNULL:
case ICMD_CHECKNULL_POP:
SHOW_S1(iptr);
break;
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 $
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 $
*/
superblockend = true;
break;
- case ICMD_CHECKNULL:
case ICMD_PUTSTATICCONST:
break;
case ICMD_PUTSTATIC:
case ICMD_PUTFIELDCONST:
case ICMD_POP:
+ case ICMD_CHECKNULL_POP:
RELOCATE(iptr->s1.varindex);
break;
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];
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:
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:
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:
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 $
*/
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);