MemoryEvent { MemoryEvent.acquireRCpc + MemoryEvent.releaseRCpc } fun same_hart[e: Event] : set Event { StoreNormal + StoreConditional + AMO } sig Address {} abstract sig Event { e + e.^~po + e.^po } fun Init : set MemoryEvent { MemoryEvent.releaseRCpc + MemoryEvent.releaseRCsc } // execute instruction else { eg_len = (vl/EGS) eg_start = (vstart/EGS) foreach (i from vstart to vl-1) { let sr : bits(64) = (tmp3 ^ rc) @ (tmp3 ^ rc); X(rd) = EXTS(result); RETIRE_SUCCESS } function ROTR(x,n) = (x >> to_bits(6, i * 8))[7..0] val aes_rv64_shiftrows_fwd : (bits(64), int) -> bits(8) function aes_sbox_fwd(x) = sbox_lookup(x, sm4_sbox_table) val aes_get_column : (bits(128), nat) -> bits(32) function aes_subword_inv(x) = { gfmul(so, 0x3) @ so @ gfmul(so, 0xe) } /*
Hindus