4.2.5 Store Integer Register Data into Memory Conditional
Format:
STx_CRa.mx,disp.ab(Rb.ab)!Memory format
Operation:
| va ← {Rbv + SEXT(disp)} | 
 | ||
| CASE | 
 | va’ ← va XOR 0002 | 
 | 
| big_endian_data: | ! STQ_C | ||
| big_endian_data: | va’ ← va XOR 1002 | ! STL_C | |
| little_endian_data: va’ ← va | ! STL_C | ||
| ENDCASE | 
 | 
 | 
 | 
| IF lock_flag EQ 1 THEN | 
 | ||
| (va’)<31:0> ← Rav<31:0> | ! STL_C | ||
| (va’) | ← Rav | ! STQ_C | |
Ra ← lock_flag lock_flag ← 0
Exceptions:
Access Violation
Fault on Write
Alignment
Translation Not Valid
Instruction mnemonics:
| STL_C | Store Longword from Register to Memory Conditional | 
| STQ_C | Store Quadword from Register to Memory Conditional | 
Qualifiers:
None
Description:
The virtual address is computed by adding register Rb to the 
If the lock_flag is set and the address meets the following constraints relative to the address specified by the preceding LDx_L instruction, the Ra operand is written to memory at this address. If the address meets the following constraints but the lock_flag is not set, a zero is returned in Ra and no write to memory occurs. The constraints are:
