csdb

Consumption of Speculative Data Barrier (A32)

CSDB

Prevents speculative data consumption (v8.0).

Pseudocode Operation

// Prevent consumption of speculatively-loaded data
ConsumptionBarrier()
// Subsequent instructions cannot use data obtained through speculative execution prior to this barrier

Encoding

Binary Layout
cond
31:28
00110
27:23
0
22
10
21:20
0000
19:16
1
15
1
14
1
13
1
12
000000010100
11:0
 
Format System Hint
Opcode 0x0320F014
Extension A32 (v8.0)

Operands

Related

Other forms of csdb

  • csdb Consumption of Speculative Data Barrier

More in A32 (v8.0)

Reference

Instruction Forms

Encoding Instruction ISA Bit pattern
0x0320F014 CSDB{<c>}{<q>} A32 cond | 00110 | 0 | 10 | 0000 | 1 | 1 | 1 | 1 | 000000010100
0xF3AF8014 CSDB{<c>}{<q>} T32 111100111010 | 1 | 1 | 1 | 1 | 10 | 0 | 0 | 0 | 000 | 0001 | 0100

Description

Consumption of Speculative Data Barrier is a memory barrier that controls speculative execution and data value prediction. No instruction other than branch instructions and instructions that write to the PC appearing in program order after the CSDB can be speculatively executed using the results of any:

Operation

if ConditionPassed() then
    EncodingSpecificOperations();

    ConsumptionOfSpeculativeDataBarrier();