def grab_byte(typingctx, data, offset): # returns a byte at a given offset in data def impl(context, builder, signature, args): data, idx = args ptr = builder.bitcast(data, ir.IntType(8).as_pointer()) ch = builder.load(builder.gep(ptr, [idx])) return ch sig = types.uint8(types.voidptr, types.intp) return sig, impl
def _Py_CHARMASK(ch): """ Equivalent to the CPython macro `Py_CHARMASK()`, masks off all but the lowest 256 bits of ch. """ return types.uint8(ch) & types.uint8(0xff)