Merge branch 'upstream'

Former-commit-id: 02adb7e0cc4a50e0f5f62bf2d8e4f7eeb52fc7ea
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2018-05-05 09:21:45 +00:00
commit 4e7d57ac86
37 changed files with 68 additions and 44 deletions

View File

@ -1 +1 @@
9d0402a0c2fe979d4e702b268744d37db843781e
9d8d6096190e935bc448abb0cf6978fdfa093034

View File

@ -1 +1 @@
cf3824e9a0803082e5db3a285035e8616189c9e3
4cc988b98de7505f71a9191ce5c7146802163cbe

View File

@ -34,7 +34,7 @@ static class Consts
// Use these assembly version constants to make code more maintainable.
//
public const string MonoVersion = "5.12.0.226";
public const string MonoVersion = "5.12.0.227";
public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -1 +1 @@
9fa02907cfd12940c44a953f44d58fe406c77b66
35d7fc897d1f06594a9b4fcae63b02277d2d4c9c

View File

@ -1 +1 @@
411d7ede74801935e212622c9ee548565bebf07a
abd593f6d8cfe063f7015675df9502ce32be91b2

View File

@ -1 +1 @@
9792ed9067cdc1f1343d3bdb21f0a0f61acedea3
37a32c8b51742b4521fe4523bf298b7403d3921c

View File

@ -1 +1 @@
3311e093bdcb62f86176c9052abaa139880abb65
831fd5ec9dbf5349138f39f972064741d4c371a1

View File

@ -1 +1 @@
176c78644d86c3885ecd46f4845f45fa94d65f0d
ba025b1cbe8df6d9cfe3343cd46d9eb3db982015

View File

@ -1 +1 @@
d15403c754fe33ce695009ce9b8b9dd09c59e914
791174d8ad4a4092ab97c51f785d7a1c0ba7b759

View File

@ -1 +1 @@
ffc5177c642141f0de5a33e0328e35b98ca71766
40daeb79fbc5bbf7c6e4dfa4f89fe6dd435af8fb

View File

@ -1 +1 @@
9fa02907cfd12940c44a953f44d58fe406c77b66
35d7fc897d1f06594a9b4fcae63b02277d2d4c9c

View File

@ -1 +1 @@
411d7ede74801935e212622c9ee548565bebf07a
abd593f6d8cfe063f7015675df9502ce32be91b2

View File

@ -1 +1 @@
9792ed9067cdc1f1343d3bdb21f0a0f61acedea3
37a32c8b51742b4521fe4523bf298b7403d3921c

View File

@ -1 +1 @@
3311e093bdcb62f86176c9052abaa139880abb65
831fd5ec9dbf5349138f39f972064741d4c371a1

View File

@ -1 +1 @@
176c78644d86c3885ecd46f4845f45fa94d65f0d
ba025b1cbe8df6d9cfe3343cd46d9eb3db982015

View File

@ -1 +1 @@
d15403c754fe33ce695009ce9b8b9dd09c59e914
791174d8ad4a4092ab97c51f785d7a1c0ba7b759

View File

@ -1 +1 @@
ffc5177c642141f0de5a33e0328e35b98ca71766
40daeb79fbc5bbf7c6e4dfa4f89fe6dd435af8fb

View File

@ -1 +1 @@
9fa02907cfd12940c44a953f44d58fe406c77b66
35d7fc897d1f06594a9b4fcae63b02277d2d4c9c

View File

@ -1 +1 @@
411d7ede74801935e212622c9ee548565bebf07a
abd593f6d8cfe063f7015675df9502ce32be91b2

View File

@ -1 +1 @@
9792ed9067cdc1f1343d3bdb21f0a0f61acedea3
37a32c8b51742b4521fe4523bf298b7403d3921c

View File

@ -1 +1 @@
3311e093bdcb62f86176c9052abaa139880abb65
831fd5ec9dbf5349138f39f972064741d4c371a1

View File

@ -1 +1 @@
176c78644d86c3885ecd46f4845f45fa94d65f0d
ba025b1cbe8df6d9cfe3343cd46d9eb3db982015

View File

@ -1 +1 @@
d15403c754fe33ce695009ce9b8b9dd09c59e914
791174d8ad4a4092ab97c51f785d7a1c0ba7b759

View File

@ -1 +1 @@
ffc5177c642141f0de5a33e0328e35b98ca71766
40daeb79fbc5bbf7c6e4dfa4f89fe6dd435af8fb

View File

@ -715,7 +715,6 @@ public class BuiltinTests {
}
/* fails on arm64 */
#if FALSE
static int test_0_nfloat_cmp_left_nan ()
{
var x = (nfloat)float.NaN;
@ -729,9 +728,9 @@ public class BuiltinTests {
if (x > y)
return 4;
if (x <= y)
return 1;
return 5;
if (x >= y)
return 1;
return 6;
return 0;
}
@ -749,12 +748,11 @@ public class BuiltinTests {
if (x > y)
return 4;
if (x <= y)
return 1;
return 5;
if (x >= y)
return 1;
return 6;
return 0;
}
#endif
// static int test_0_nfloat_call_boxed_equals ()
// {

View File

@ -1 +1 @@
fc3b9aec0bea8849c001f3ef08f468f0f22b5485
ebd8ca09e620615de32931a90fe0b09b8c3640d5

View File

@ -112,9 +112,9 @@ static const IntIntrisic int_cmpop[] = {
{ "op_Inequality", { OP_ICNEQ, OP_ICNEQ, OP_FCNEQ, OP_RCNEQ } },
{ "op_Equality", { OP_ICEQ, OP_ICEQ, OP_FCEQ, OP_RCEQ } },
{ "op_GreaterThan", { OP_ICGT, OP_ICGT_UN, OP_FCGT, OP_RCGT } },
{ "op_GreaterThanOrEqual", { OP_ICGE, OP_ICGE_UN, OP_FCGE, OP_RCGE } },
{ "op_GreaterThanOrEqual", { OP_ICGE, OP_ICGE_UN, OP_FCLT_UN, OP_RCLT_UN } },
{ "op_LessThan", { OP_ICLT, OP_ICLT_UN, OP_FCLT, OP_RCLT } },
{ "op_LessThanOrEqual", { OP_ICLE, OP_ICLE_UN, OP_FCLE, OP_RCLE } },
{ "op_LessThanOrEqual", { OP_ICLE, OP_ICLE_UN, OP_FCGT_UN, OP_RCGT_UN } },
};
static const MagicTypeInfo type_info[] = {
@ -292,7 +292,9 @@ emit_intrinsics (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsi
for (i = 0; i < sizeof (int_cmpop) / sizeof (IntIntrisic); ++i) {
if (!strcmp (int_cmpop [i].op_name, name)) {
g_assert (int_cmpop [i].op_table [type_index]);
short op_cmp = int_cmpop [i].op_table [type_index];
g_assert (op_cmp);
if (info->compare_op) {
MONO_INST_NEW (cfg, ins, info->compare_op);
@ -301,16 +303,40 @@ emit_intrinsics (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsi
ins->sreg2 = args [1]->dreg;
MONO_ADD_INS (cfg->cbb, ins);
MONO_INST_NEW (cfg, ins, int_cmpop [i].op_table [type_index]);
MONO_INST_NEW (cfg, ins, op_cmp);
ins->dreg = alloc_preg (cfg);
ins->type = STACK_I4;
MONO_ADD_INS (cfg->cbb, ins);
} else {
MONO_INST_NEW (cfg, ins, int_cmpop [i].op_table [type_index]);
ins->dreg = alloc_ireg (cfg);
MONO_INST_NEW (cfg, ins, op_cmp);
guint32 fcmp_dreg = ins->dreg = alloc_ireg (cfg);
ins->sreg1 = args [0]->dreg;
ins->sreg2 = args [1]->dreg;
MONO_ADD_INS (cfg->cbb, ins);
if (op_cmp == OP_FCLT_UN || op_cmp == OP_FCGT_UN || op_cmp == OP_RCLT_UN || op_cmp == OP_RCGT_UN) {
/* we have to negate the result of this comparison:
* - op_GreaterThanOrEqual maps to NOT x OP_FCLT_UN / OP_RCLT_UN
* - op_LessThanOrEqual maps to NOT x OP_FCGT_UN / OP_RCGT_UN
*
* this matches generated bytecode by C# when doing the
* same operations on float/double. the `_UN` suffix says
* that if an operand is NaN, the result is true. If
* OP_FCGE/OP_FCLE is used, it is mapped to instructions
* on some architectures that don't detect NaN. For
* example, on arm64 the condition `eq` doesn't respect
* NaN results of a `fcmp` instruction.
*/
MONO_INST_NEW (cfg, ins, OP_ICOMPARE_IMM);
ins->dreg = -1;
ins->sreg1 = fcmp_dreg;
ins->inst_imm = 0;
MONO_ADD_INS (cfg->cbb, ins);
MONO_INST_NEW (cfg, ins, OP_CEQ);
ins->dreg = alloc_preg (cfg);
ins->type = STACK_I4;
MONO_ADD_INS (cfg->cbb, ins);
}
}
return ins;

View File

@ -1 +1 @@
#define FULL_VERSION "explicit/9824e26"
#define FULL_VERSION "explicit/7c317d0"

Binary file not shown.

View File

@ -1 +1 @@
50ef50e51f273eb23f1f3b062034da0bf81dedd7
68d0f5a959d33148fadcb06a589e126977d46e11

Binary file not shown.

View File

@ -1 +1 @@
bd0d987022028d8994f2e8b91e72d5942c69f484
566be26aa1b53c34f357340ddb26c098ad692bda

Binary file not shown.

View File

@ -1 +1 @@
da0808904c241c82630ed4bcb400b775fa04c20e
0aee23f7c889b09a2027c18965c7aad6299b55bd

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: mono 5.12.0.226\n"
"Project-Id-Version: mono 5.12.0.227\n"
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
"POT-Creation-Date: 2018-05-01 08:26+0000\n"
"POT-Creation-Date: 2018-05-05 08:29+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

Binary file not shown.

View File

@ -1 +1 @@
12646cf19930e1be106d69c990f47cf2cc37a076
a26ca746121c611600c90fb7cddf62acd068628d