================ @@ -1205,10 +1298,19 @@ class LOAD32<BPFWidthModifer SizeOp, BPFModeModifer ModOp, string OpcodeStr, lis class LOADi32<BPFWidthModifer SizeOp, BPFModeModifer ModOp, string OpcodeStr, PatFrag OpNode> : LOAD32<SizeOp, ModOp, OpcodeStr, [(set i32:$dst, (OpNode ADDRri:$addr))]>; +class LOAD_ACQUIREi32<BPFWidthModifer SizeOp, string OpcodeStr> + : LOAD_ACQUIRE<SizeOp, OpcodeStr, GPR32>; + let Predicates = [BPFHasALU32], DecoderNamespace = "BPFALU32" in { def LDW32 : LOADi32<BPF_W, BPF_MEM, "u32", load>; def LDH32 : LOADi32<BPF_H, BPF_MEM, "u16", zextloadi16>; def LDB32 : LOADi32<BPF_B, BPF_MEM, "u8", zextloadi8>; + + let Predicates = [BPFHasLoadAcquire] in { ---------------- eddyz87 wrote:
Is there a reason to define these (and stores) behind `BPFHasALU32` flag? >From instruction encoding pow we use STX class, which has no 32/64 >sub-division. 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