2006-01-03 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Tue, 3 Jan 2006 21:39:40 +0000 (21:39 -0000)
committerZoltan Varga <vargaz@gmail.com>
Tue, 3 Jan 2006 21:39:40 +0000 (21:39 -0000)
* mini.c (mini_get_ldelema_ins): Handle arrays with rank 1 too. Fixes
#77148.

svn path=/trunk/mono/; revision=55023

mono/mini/ChangeLog
mono/mini/mini.c

index 5e980e0269b271b49e2d9f8357d2136dddf96337..d600b896918ef93f4312797d5c8acfba90ad1aee 100644 (file)
@@ -1,3 +1,8 @@
+2006-01-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mini_get_ldelema_ins): Handle arrays with rank 1 too. Fixes
+       #77148.
+
 2006-01-03  Neale Ferguson <neale@sinenomine.net>
 
        * mini-s390x.c, inssel-s390x.brg: Remove debug statements
index c33dcb7ab43b9b3fc6d0dc87481b9423f3e01fc3..017dac3438518d6ff3cc67fe62653f889eb52ef4 100644 (file)
@@ -2800,6 +2800,16 @@ mini_get_ldelema_ins (MonoCompile *cfg, MonoBasicBlock *bblock, MonoMethod *cmet
 
        rank = mono_method_signature (cmethod)->param_count - (is_set? 1: 0);
 
+       if (rank == 1) {
+               MONO_INST_NEW (cfg, addr, CEE_LDELEMA);
+               addr->inst_left = sp [0];
+               addr->inst_right = sp [1];
+               addr->cil_code = ip;
+               addr->type = STACK_MP;
+               addr->klass = cmethod->klass;
+               return addr;
+       }
+
        if (rank == 2 && (cfg->opt & MONO_OPT_INTRINS)) {
 #ifdef MONO_ARCH_EMULATE_MUL_DIV
                /* OP_LDELEMA2D depends on OP_LMUL */