ssbb
Speculative Store Bypass Barrier (A32)
SSBB
Prevents speculative loads bypassing earlier stores (v8.0).
Details
Speculative Store Bypass Barrier (v8.0) prevents speculative loads from bypassing earlier stores, ensuring that load operations wait for all prior store operations to complete. This is a lighter-weight barrier than SB, specifically targeting store-to-load forwarding speculation. Available in A32 instruction set; does not modify condition flags.
Pseudocode Operation
// Prevent speculative load execution past prior stores
StoreBypassBarrier()
// All prior stores complete before subsequent loads can execute
Example
SSBB
Encoding
Binary Layout
111101010111
1
1
1
1
1
1
1
1
0
0
0
0
0100
0000
Operands
Reference (Arm AArch32 ISA)
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0xF57FF040 | SSBB{<q>} | A32 | 111101010111 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0100 | 0000 | ||
| 0xF3BF8F40 | SSBB{<q>} | T32 | 111100111011 | 1 | 1 | 1 | 1 | 10 | 0 | 0 | 1 | 1 | 1 | 1 | 0100 | 0000 |
Description
Speculative Store Bypass Barrier is a memory barrier which prevents speculative loads from bypassing earlier stores to the same virtual address under certain conditions.
The semantics of the Speculative Store Bypass Barrier are:
Operation
if ConditionPassed() then
EncodingSpecificOperations();
SpeculativeStoreBypassBarrierToVA();