Ticket #8 (closed defect: fixed)
branch in x86-64 _SPstore_node_conditional targeted wrong label
|Reported by:||gb||Owned by:||gb|
|Component:||Runtime (threads, GC)||Version:||1.1|
If a compare-and-swap (cmpxchgq) instruction used in the subprimitive _SPstore_node_conditional failed (cleard the z flag), the subsequent branch instruction branched forward to local label 0. It should have branched backward, retrying the store-conditional.
Branching backward typically caused code in _SPprogvsave - which checks to ensure that a list of values was a proper list - to signal a confusing, spurious error.