import unittest def exts(value, bits): sign = 1 << (bits - 1) return (value & (sign - 1)) - (value & sign) def EXTS64(value): return exts(value, 32) & ((1<<64)-1) def EXTZ64(value): return value & ((1<<32)-1) def rotl(value, bits, wordlen): mask = (1 << wordlen) - 1 bits = bits & (wordlen - 1) return ((value << bits) | (value >> (wordlen-bits))) & mask def ROTL64(value, bits): return rotl(value, bits, 64) def ROTL32(value, bits): return rotl(value, bits, 32) def MASK(x, y): if x < y: x = 64-x y = 63-y mask_a = ((1<