A64/config: Provide default implementation of MemoryWriteExclusive functions
Returning false is always safe, because this means the exclusive write has failed.
This commit is contained in:
parent
34ef5142e3
commit
62e04845b1
1 changed files with 6 additions and 6 deletions
|
@ -84,17 +84,17 @@ struct UserCallbacks {
|
||||||
virtual void MemoryWrite128(VAddr vaddr, Vector value) = 0;
|
virtual void MemoryWrite128(VAddr vaddr, Vector value) = 0;
|
||||||
|
|
||||||
// Writes through these callbacks may not be aligned.
|
// Writes through these callbacks may not be aligned.
|
||||||
virtual bool MemoryWriteExclusive8(VAddr vaddr, std::uint8_t value, std::uint8_t expected) = 0;
|
virtual bool MemoryWriteExclusive8(VAddr /*vaddr*/, std::uint8_t /*value*/, std::uint8_t /*expected*/) { return false; }
|
||||||
virtual bool MemoryWriteExclusive16(VAddr vaddr, std::uint16_t value, std::uint16_t expected) = 0;
|
virtual bool MemoryWriteExclusive16(VAddr /*vaddr*/, std::uint16_t /*value*/, std::uint16_t /*expected*/) { return false; }
|
||||||
virtual bool MemoryWriteExclusive32(VAddr vaddr, std::uint32_t value, std::uint32_t expected) = 0;
|
virtual bool MemoryWriteExclusive32(VAddr /*vaddr*/, std::uint32_t /*value*/, std::uint32_t /*expected*/) { return false; }
|
||||||
virtual bool MemoryWriteExclusive64(VAddr vaddr, std::uint64_t value, std::uint64_t expected) = 0;
|
virtual bool MemoryWriteExclusive64(VAddr /*vaddr*/, std::uint64_t /*value*/, std::uint64_t /*expected*/) { return false; }
|
||||||
virtual bool MemoryWriteExclusive128(VAddr vaddr, Vector value, Vector expected) = 0;
|
virtual bool MemoryWriteExclusive128(VAddr /*vaddr*/, Vector /*value*/, Vector /*expected*/) { return false; }
|
||||||
|
|
||||||
// If this callback returns true, the JIT will assume MemoryRead* callbacks will always
|
// If this callback returns true, the JIT will assume MemoryRead* callbacks will always
|
||||||
// return the same value at any point in time for this vaddr. The JIT may use this information
|
// return the same value at any point in time for this vaddr. The JIT may use this information
|
||||||
// in optimizations.
|
// in optimizations.
|
||||||
// A conservative implementation that always returns false is safe.
|
// A conservative implementation that always returns false is safe.
|
||||||
virtual bool IsReadOnlyMemory(VAddr /* vaddr */) { return false; }
|
virtual bool IsReadOnlyMemory(VAddr /*vaddr*/) { return false; }
|
||||||
|
|
||||||
/// The interpreter must execute exactly num_instructions starting from PC.
|
/// The interpreter must execute exactly num_instructions starting from PC.
|
||||||
virtual void InterpreterFallback(VAddr pc, size_t num_instructions) = 0;
|
virtual void InterpreterFallback(VAddr pc, size_t num_instructions) = 0;
|
||||||
|
|
Loading…
Reference in a new issue