-rw-r--r-- 1327 djbsort-20260210/sortverif/angr-patch raw
--- a/site-packages/angr/engines/vex/claripy/irop.py +++ b/site-packages/angr/engines/vex/claripy/irop.py @@ -119,6 +119,14 @@ "generic_name": "unpack", "to_size": 128, }, + "Iop_SliceV128": { + "generic_name": "slice", + "to_size": 128, + }, + "Iop_Reverse32sIn64_x2": { + "generic_name": "reverse", + "to_size": 128, + }, } for _vec_lanewidth in (8, 16, 32, 64): @@ -1104,6 +1112,18 @@ return self._op_concat(args) @staticmethod + def _op_Iop_SliceV128(args): + left,right,imm = args + assert imm.op == 'BVV' + imm = imm.args[0] + return claripy.Concat(left,right)[127+imm*8:imm*8] + + @staticmethod + def _op_Iop_Reverse32sIn64_x2(args): + arg = args[0] + return claripy.Concat(arg[95:64],arg[127:96],arg[31:0],arg[63:32]) + + @staticmethod def _op_Iop_V256to64_0(args): return args[0][63:0] @@ -1265,7 +1285,7 @@ if res is None and extended: attrs = op_attrs(op) if attrs is None: - raise UnsupportedIROpError("Operation not implemented") + raise UnsupportedIROpError(f"Operation {op} not implemented") res = SimIROp(op, **attrs) if res is None: raise UnsupportedIROpError("Operation not implemented")