+ case MEMMODEL_SEQ_CST:
+ op = sync_mem_exchange_seq_cst_optab;
+ break;
+ case MEMMODEL_ACQUIRE:
+ op = sync_mem_exchange_acq_optab;
+ break;
+ case MEMMODEL_RELEASE:
+ op = sync_mem_exchange_rel_optab;
+ break;
+ case MEMMODEL_ACQ_REL:
+ op = sync_mem_exchange_acq_rel_optab;
+ break;
Wouldn't it be better to pass the model (as an extra CONST_INT
operand) to the expanders? Targets where atomic instructions always act
as full barriers could just ignore that argument, other could decide what
to do based on the value.