Commit 9debac6d authored by Zhi An Ng's avatar Zhi An Ng Committed by Commit Bot

[arm][cleanup] Refactor decoding to follow guide

Stick more closely to the decoding guide laid out in the manual, and
also take the chance to remove some duplicate code.

Drive-by fix a clang-tidy warning for bool literal.

Bug: v8:11074
Change-Id: I91aa8db7cd3db30b250e8bfc9bb146c8bb56dcd1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567530
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71630}
parent 5ce5f429
This diff is collapsed.
...@@ -332,6 +332,10 @@ class Simulator : public SimulatorBase { ...@@ -332,6 +332,10 @@ class Simulator : public SimulatorBase {
void SoftwareInterrupt(Instruction* instr); void SoftwareInterrupt(Instruction* instr);
void DebugAtNextPC(); void DebugAtNextPC();
// Helper to write back values to register.
void AdvancedSIMDElementOrStructureLoadStoreWriteback(int Rn, int Rm,
int ebytes);
// Stop helper functions. // Stop helper functions.
inline bool isWatchedStop(uint32_t bkpt_code); inline bool isWatchedStop(uint32_t bkpt_code);
inline bool isEnabledStop(uint32_t bkpt_code); inline bool isEnabledStop(uint32_t bkpt_code);
...@@ -391,6 +395,9 @@ class Simulator : public SimulatorBase { ...@@ -391,6 +395,9 @@ class Simulator : public SimulatorBase {
void DecodeAdvancedSIMDDataProcessing(Instruction* instr); void DecodeAdvancedSIMDDataProcessing(Instruction* instr);
void DecodeMemoryHintsAndBarriers(Instruction* instr); void DecodeMemoryHintsAndBarriers(Instruction* instr);
void DecodeAdvancedSIMDElementOrStructureLoadStore(Instruction* instr); void DecodeAdvancedSIMDElementOrStructureLoadStore(Instruction* instr);
void DecodeAdvancedSIMDLoadStoreMultipleStructures(Instruction* instr);
void DecodeAdvancedSIMDLoadSingleStructureToAllLanes(Instruction* instr);
void DecodeAdvancedSIMDLoadStoreSingleStructureToOneLane(Instruction* instr);
void DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr); void DecodeAdvancedSIMDTwoOrThreeRegisters(Instruction* instr);
void DecodeVMOVBetweenCoreAndSinglePrecisionRegisters(Instruction* instr); void DecodeVMOVBetweenCoreAndSinglePrecisionRegisters(Instruction* instr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment