diff options
author | 2023-09-27 11:38:49 +0000 | |
---|---|---|
committer | 2023-10-02 17:48:47 +0000 | |
commit | 75b8352c216dbce3f179ed9053d0e8355d1ad306 (patch) | |
tree | 3c1523ce0d39a8ab178e6eec9c93cd028ff0180e /compiler/optimizing/optimizing_compiler.cc | |
parent | ebe117b400190775c9a543a89874b999550d4508 (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.cc | 8 |
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: |