This module generates MIPS machine code for a sequence of
intermediate code commands (ICMDs).
- $Id: codegen.c 4138 2006-01-11 10:35:54Z twisti $
+ $Id: codegen.c 4195 2006-01-13 10:42:23Z twisti $
*/
break;
case ICMD_MULTIANEWARRAY:/* ..., cnt1, [cnt2, ...] ==> ..., arrayref */
- /* op1 = dimension, val.a = array descriptor */
+ /* op1 = dimension, val.a = class */
/* check for negative sizes and copy sizes to stack if necessary */
/* is patcher function set? */
- if (iptr->target) {
+ if (iptr->val.a == NULL) {
disp = dseg_addaddress(cd, NULL);
codegen_addpatchref(cd, mcodeptr,
PATCHER_builtin_multianewarray,
- iptr->val.a, disp);
+ (constant_classref *) iptr->target,
+ disp);
if (opt_showdisassemble) {
M_NOP; M_NOP;
Changes: Christian Thalinger
Christian Ullrich
- $Id: codegen.c 4055 2006-01-02 12:59:54Z christian $
+ $Id: codegen.c 4195 2006-01-13 10:42:23Z twisti $
*/
break;
case ICMD_MULTIANEWARRAY:/* ..., cnt1, [cnt2, ...] ==> ..., arrayref */
- /* op1 = dimension, val.a = array descriptor */
+ /* op1 = dimension, val.a = class */
/* check for negative sizes and copy sizes to stack if necessary */
/* is patcher function set? */
- if (iptr->target) {
+ if (iptr->val.a == NULL) {
disp = dseg_addaddress(cd, NULL);
codegen_addpatchref(cd, mcodeptr,
PATCHER_builtin_multianewarray,
- iptr->val.a, disp);
+ (constant_classref *) iptr->target,
+ disp);
if (opt_showdisassemble)
M_NOP;