Mercurial > hg > shark > hotspot
changeset 2434:17560fb7d842
More (untested)
author | Gary Benson <gbenson@redhat.com> |
---|---|
date | Mon, 28 Mar 2011 11:43:24 +0100 |
parents | 79a27a49c1fe |
children | dfa8e5680ab9 |
files | src/cpu/zero/vm/cppInterpreter_zero.cpp |
diffstat | 1 files changed, 31 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Mar 28 11:01:17 2011 +0100 +++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Mar 28 11:43:24 2011 +0100 @@ -836,7 +836,37 @@ SET_VMSLOTS_OBJECT(arg, arg_slot); } else { - Unimplemented(); + jvalue arg_value; + arg_type = java_lang_boxing_object::get_value(arg, &arg_value); + switch (arg_type) { + case T_BOOLEAN: + SET_VMSLOTS_INT(arg_value.z, arg_slot); + break; + case T_CHAR: + SET_VMSLOTS_INT(arg_value.c, arg_slot); + break; + case T_BYTE: + SET_VMSLOTS_INT(arg_value.b, arg_slot); + break; + case T_SHORT: + SET_VMSLOTS_INT(arg_value.s, arg_slot); + break; + case T_INT: + SET_VMSLOTS_INT(arg_value.i, arg_slot); + break; + case T_FLOAT: + SET_VMSLOTS_FLOAT(arg_value.f, arg_slot); + break; + case T_LONG: + SET_VMSLOTS_LONG(arg_value.j, arg_slot + 1); + break; + case T_DOUBLE: + SET_VMSLOTS_DOUBLE(arg_value.d, arg_slot + 1); + break; + default: + tty->print_cr("unhandled type %s", type2name(arg_type)); + ShouldNotReachHere(); + } } } break;