summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/optimizing/code_generator_riscv64.cc2
-rw-r--r--compiler/optimizing/optimizing_compiler.cc9
2 files changed, 10 insertions, 1 deletions
diff --git a/compiler/optimizing/code_generator_riscv64.cc b/compiler/optimizing/code_generator_riscv64.cc
index 648fa88727..c77d069478 100644
--- a/compiler/optimizing/code_generator_riscv64.cc
+++ b/compiler/optimizing/code_generator_riscv64.cc
@@ -2286,7 +2286,7 @@ void CodeGeneratorRISCV64::MarkGCCard(XRegister object,
// This dual use of the value in register `card` (1. to calculate the location
// of the card to mark; and 2. to load the `kCardDirty` value) saves a load
// (no need to explicitly load `kCardDirty` as an immediate value).
- __ Storeb(card, temp, 0);
+ __ Sb(card, temp, 0); // No scratch register left for `Storeb()`.
if (value_can_be_null) {
__ Bind(&done);
}
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 040c2449a7..325fb87fc5 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -743,6 +743,10 @@ static bool CanAssembleGraphForRiscv64(HGraph* graph) {
UNREACHABLE();
case HInstruction::kExit:
case HInstruction::kGoto:
+ case HInstruction::kPackedSwitch:
+ case HInstruction::kTryBoundary:
+ case HInstruction::kClearException:
+ case HInstruction::kLoadException:
case HInstruction::kParameterValue:
case HInstruction::kReturn:
case HInstruction::kReturnVoid:
@@ -757,8 +761,13 @@ static bool CanAssembleGraphForRiscv64(HGraph* graph) {
case HInstruction::kLoadMethodHandle:
case HInstruction::kLoadMethodType:
case HInstruction::kInstanceFieldGet:
+ case HInstruction::kInstanceFieldSet:
case HInstruction::kStaticFieldGet:
+ case HInstruction::kStaticFieldSet:
case HInstruction::kArrayGet:
+ case HInstruction::kArrayLength:
+ case HInstruction::kArraySet:
+ case HInstruction::kBoundsCheck:
case HInstruction::kAbove:
case HInstruction::kAboveOrEqual:
case HInstruction::kBelow: