This commit is contained in:
Merry 2022-03-13 01:52:06 +00:00
parent 382e268981
commit c9172abe6c

View file

@ -146,13 +146,13 @@ namespace ARMeilleure.Instructions
var exclusive = (accType & AccessType.Exclusive) != 0; var exclusive = (accType & AccessType.Exclusive) != 0;
var ordered = (accType & AccessType.Ordered) != 0; var ordered = (accType & AccessType.Ordered) != 0;
if ((accType & AccessType.Load) != 0)
{
if (ordered) if (ordered)
{ {
EmitBarrier(context); EmitBarrier(context);
} }
if ((accType & AccessType.Load) != 0)
{
if (size == DWordSizeLog2) if (size == DWordSizeLog2)
{ {
// Keep loads atomic - make the call to get the whole region and then decompose it into parts // Keep loads atomic - make the call to get the whole region and then decompose it into parts
@ -219,6 +219,11 @@ namespace ARMeilleure.Instructions
Operand value = context.ZeroExtend32(OperandType.I64, GetIntA32(context, op.Rt)); Operand value = context.ZeroExtend32(OperandType.I64, GetIntA32(context, op.Rt));
EmitStoreExclusive(context, address, value, exclusive, size, op.Rd, a32: true); EmitStoreExclusive(context, address, value, exclusive, size, op.Rd, a32: true);
} }
if (ordered)
{
EmitBarrier(context);
}
} }
} }