Skip to content

Commit dfb3d24

Browse files
authored
[mono][interp] Fix incorrect masking (#82890)
* [mono][interp] Fix incorrect masking * [mono][interp] Fix warning
1 parent ac226b4 commit dfb3d24

File tree

2 files changed

+3
-4
lines changed

2 files changed

+3
-4
lines changed

src/mono/mono/mini/interp/interp-simd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,13 @@ interp_v128_i4_op_negation (gpointer res, gpointer v1)
147147
static void
148148
interp_v128_i1_op_left_shift (gpointer res, gpointer v1, gpointer s1)
149149
{
150-
*(v128_i1*)res = *(v128_i1*)v1 << (*(gint32*)s1 & 0x7);
150+
*(v128_i1*)res = *(v128_i1*)v1 << (*(gint32*)s1 & 7);
151151
}
152152

153153
static void
154154
interp_v128_i2_op_left_shift (gpointer res, gpointer v1, gpointer s1)
155155
{
156-
*(v128_i2*)res = *(v128_i2*)v1 << (*(gint32*)s1 & 0x15);
156+
*(v128_i2*)res = *(v128_i2*)v1 << (*(gint32*)s1 & 15);
157157
}
158158

159159
static void

src/mono/mono/mini/interp/transform-simd.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,14 @@ emit_sri_vector128 (TransformData *td, MonoMethod *cmethod, MonoMethodSignature
9191
if (id == -1)
9292
return FALSE;
9393

94+
MonoClass *vector_klass = mono_class_from_mono_type_internal (csignature->ret);
9495
if (id == SN_get_IsHardwareAccelerated) {
9596
interp_add_ins (td, MINT_LDC_I4_1);
9697
goto opcode_added;
9798
}
9899

99100
gint16 simd_opcode = -1;
100101
gint16 simd_intrins = -1;
101-
102-
MonoClass *vector_klass = mono_class_from_mono_type_internal (csignature->ret);
103102
if (!m_class_is_simd_type (vector_klass))
104103
vector_klass = mono_class_from_mono_type_internal (csignature->params [0]);
105104
if (!m_class_is_simd_type (vector_klass))

0 commit comments

Comments
 (0)