diff options
Diffstat (limited to 'compiler/optimizing/intrinsics_x86_64.cc')
-rw-r--r-- | compiler/optimizing/intrinsics_x86_64.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/optimizing/intrinsics_x86_64.cc b/compiler/optimizing/intrinsics_x86_64.cc index 131460d605..0a60e9c642 100644 --- a/compiler/optimizing/intrinsics_x86_64.cc +++ b/compiler/optimizing/intrinsics_x86_64.cc @@ -2080,8 +2080,11 @@ static void GenUnsafePut(LocationSummary* locations, DataType::Type type, bool i __ movl(temp, value); __ PoisonHeapReference(temp); __ movl(Address(base, offset, ScaleFactor::TIMES_1, 0), temp); - } else { + } else if (type == DataType::Type::kInt32 || type == DataType::Type::kReference) { __ movl(Address(base, offset, ScaleFactor::TIMES_1, 0), value); + } else { + CHECK_EQ(type, DataType::Type::kInt8) << "Unimplemented GenUnsafePut data type"; + __ movb(Address(base, offset, ScaleFactor::TIMES_1, 0), value); } if (is_volatile) { |