summaryrefslogtreecommitdiff
path: root/compiler/optimizing/intrinsics_x86_64.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/intrinsics_x86_64.cc')
-rw-r--r--compiler/optimizing/intrinsics_x86_64.cc5
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) {