Use correct register class for refs

LoadValue requires thar ref location should reguest kRefReg
register class. The patch fixes GenFilledNewArray to specify
the register class correctly.

This is a fix for the crash of dex2oat on 412-new-array unit test.

Change-Id: I58d969ddac0d84d4024bf686b5b0c12337ca9a37
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
diff --git a/compiler/dex/quick/gen_common.cc b/compiler/dex/quick/gen_common.cc
index 061ee07..9cf601b 100644
--- a/compiler/dex/quick/gen_common.cc
+++ b/compiler/dex/quick/gen_common.cc
@@ -481,7 +481,7 @@
   } else if (!info->is_range) {
     // TUNING: interleave
     for (int i = 0; i < elems; i++) {
-      RegLocation rl_arg = LoadValue(info->args[i], kCoreReg);
+      RegLocation rl_arg = LoadValue(info->args[i], info->args[i].ref ? kRefReg : kCoreReg);
       Store32Disp(ref_reg,
                   mirror::Array::DataOffset(component_size).Int32Value() + i * 4, rl_arg.reg);
       // If the LoadValue caused a temp to be allocated, free it
diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk
index e7a0439..455474d 100644
--- a/test/Android.run-test.mk
+++ b/test/Android.run-test.mk
@@ -295,8 +295,7 @@
 TEST_ART_BROKEN_NDEBUG_TESTS :=
 
 # Known broken tests for the default compiler (Quick).
-TEST_ART_BROKEN_DEFAULT_RUN_TESTS := \
-  412-new-array
+TEST_ART_BROKEN_DEFAULT_RUN_TESTS :=
 
 ifneq (,$(filter default,$(COMPILER_TYPES)))
   ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \