================ @@ -622,6 +665,47 @@ let Predicates = [BPFHasLdsx] in { def LDD : LOADi64<BPF_DW, BPF_MEM, "u64", load>; +class LOAD_ACQUIRE<BPFWidthModifer SizeOp, string OpcodeStr, RegisterClass RegTp> + : TYPE_LD_ST<BPF_ATOMIC.Value, SizeOp.Value, + (outs RegTp:$dst), + (ins MEMri:$addr), + "$dst = load_acquire(("#OpcodeStr#" *)($addr))", + []> { + bits<4> dst; + bits<20> addr; + + let Inst{51-48} = dst; + let Inst{55-52} = addr{19-16}; // base reg + let Inst{47-32} = addr{15-0}; // offset + let Inst{7-4} = BPF_LOAD_ACQ.Value; ---------------- peilin-ye wrote:
Sure! (I'm on leave for the rest of the week; will get back to this first thing next week) https://github.com/llvm/llvm-project/pull/108636 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits