summaryrefslogtreecommitdiff
path: root/compiler/optimizing/optimizing_compiler.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-10-17 12:26:29 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2023-10-19 16:00:34 +0000
commitb851fb49e82bc287cea6c19b5fa2fa036dbfae01 (patch)
tree4048ff0edcba2c2c0b6f3f8010f69c2155e09d08 /compiler/optimizing/optimizing_compiler.cc
parent7a718338b7654b58b38287de81465b98b5f916d7 (diff)
riscv64: Implement `art_quick_check_instance_of`...
... and two other entrypoints. Enable codegen for several instructions and fix exposed new-array and proxy bugs. Test: m # aosp_cf_riscv64_phone-userdebug Test: # Edit `run-test` to disable checker, then testrunner.py --target --64 --ndebug --optimizing # Ignore 3 pre-existing failures (down from 6). Bug: 283082089 Change-Id: I7764fa1b578639d4871c11a79c3980defada3e7d
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r--compiler/optimizing/optimizing_compiler.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index bc0a66f7db..6062d25eb8 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -771,6 +771,8 @@ static bool CanAssembleGraphForRiscv64(HGraph* graph) {
case HInstruction::kGoto:
case HInstruction::kPackedSwitch:
case HInstruction::kSelect:
+ case HInstruction::kThrow:
+ case HInstruction::kNop:
case HInstruction::kTryBoundary:
case HInstruction::kClearException:
case HInstruction::kLoadException:
@@ -790,6 +792,8 @@ static bool CanAssembleGraphForRiscv64(HGraph* graph) {
case HInstruction::kLoadMethodType:
case HInstruction::kNewArray:
case HInstruction::kNewInstance:
+ case HInstruction::kConstructorFence:
+ case HInstruction::kMemoryBarrier:
case HInstruction::kInstanceFieldGet:
case HInstruction::kInstanceFieldSet:
case HInstruction::kStaticFieldGet:
@@ -821,16 +825,25 @@ static bool CanAssembleGraphForRiscv64(HGraph* graph) {
case HInstruction::kUShr:
case HInstruction::kAbs:
case HInstruction::kBooleanNot:
+ case HInstruction::kDiv:
+ case HInstruction::kRem:
case HInstruction::kMul:
case HInstruction::kNeg:
case HInstruction::kNot:
case HInstruction::kMin:
case HInstruction::kMax:
+ case HInstruction::kMonitorOperation:
+ case HInstruction::kStringBuilderAppend:
case HInstruction::kInvokeStaticOrDirect:
case HInstruction::kInvokeVirtual:
case HInstruction::kInvokeInterface:
case HInstruction::kCurrentMethod:
case HInstruction::kNullCheck:
+ case HInstruction::kDeoptimize:
+ case HInstruction::kDivZeroCheck:
+ case HInstruction::kCheckCast:
+ case HInstruction::kInstanceOf:
+ case HInstruction::kBoundType:
break;
default:
// Unimplemented instruction.