summaryrefslogtreecommitdiff
path: root/compiler/optimizing/optimizing_compiler.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-09-27 11:38:49 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2023-10-02 17:48:47 +0000
commit75b8352c216dbce3f179ed9053d0e8355d1ad306 (patch)
tree3c1523ce0d39a8ab178e6eec9c93cd028ff0180e /compiler/optimizing/optimizing_compiler.cc
parentebe117b400190775c9a543a89874b999550d4508 (diff)
riscv64: [codegen] Implement Baker read barriers.
Implement codegen changes and entrypoints for Baker read barriers. Also implement resolution and initialization entrypoints and enable codegen for certain instructions to allow stress-testing the Baker read barrier implementation. Fix `CodeGeneratorRISCV64::Finalize()` to avoid finalizing the code twice. This double finaization bug was exposed by enabling compilation of some larger methods. Test: # Edit `run-test` to disable checker, then testrunner.py --target --64 --ndebug --optimizing # Ignore 7 pre-existing failures. Bug: 283082089 Change-Id: I55a128921b388fae1bf818bfbda0bcb18f6dbfb3
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r--compiler/optimizing/optimizing_compiler.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index cca11e0c7e..040c2449a7 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -751,6 +751,14 @@ static bool CanAssembleGraphForRiscv64(HGraph* graph) {
case HInstruction::kFloatConstant:
case HInstruction::kIntConstant:
case HInstruction::kLongConstant:
+ case HInstruction::kNullConstant:
+ case HInstruction::kLoadClass:
+ case HInstruction::kLoadString:
+ case HInstruction::kLoadMethodHandle:
+ case HInstruction::kLoadMethodType:
+ case HInstruction::kInstanceFieldGet:
+ case HInstruction::kStaticFieldGet:
+ case HInstruction::kArrayGet:
case HInstruction::kAbove:
case HInstruction::kAboveOrEqual:
case HInstruction::kBelow: