examples: adapt to new const types
This commit is contained in:
@@ -24,7 +24,7 @@ const (
|
||||
|
||||
func imul(k uint64, r Register) {
|
||||
t := GP64v()
|
||||
MOVQ(Imm(k), t)
|
||||
MOVQ(U64(k), t)
|
||||
IMULQ(t, r)
|
||||
}
|
||||
|
||||
@@ -51,27 +51,27 @@ func main() {
|
||||
|
||||
t := GP64v() // t = GeneralPurposeRegister64()
|
||||
MOVQ(n, t) // MOV(t, reg_ptr_len)
|
||||
ADDQ(Imm(1), t) // ADD(t, 1)
|
||||
ADDQ(U32(1), t) // ADD(t, 1)
|
||||
imul(k0U64, t) // imul(t, k0U64)
|
||||
XORQ(t, v0) // XOR(reg_v0, t)
|
||||
|
||||
MOVQ(n, t) // MOV(t, reg_ptr_len)
|
||||
ADDQ(Imm(2), t) // ADD(t, 2)
|
||||
ADDQ(U32(2), t) // ADD(t, 2)
|
||||
imul(k1U64, t) // imul(t, k1U64)
|
||||
XORQ(t, v1) // XOR(reg_v1, t)
|
||||
|
||||
long := "coreLong" // coreLong = Label("coreLong")
|
||||
CMPQ(n, Imm(32)) // CMP(reg_ptr_len, 32)
|
||||
CMPQ(n, U32(32)) // CMP(reg_ptr_len, 32)
|
||||
JGE(LabelRef(long)) // JGE(coreLong)
|
||||
//
|
||||
u64s := GP64v() // reg_u64s = GeneralPurposeRegister64()
|
||||
MOVQ(n, u64s) // MOV(reg_u64s, reg_ptr_len)
|
||||
SHRQ(Imm(3), u64s) // SHR(reg_u64s, 3)
|
||||
u64s := GP64v() // reg_u64s = GeneralPurposeRegister64()
|
||||
MOVQ(n, u64s) // MOV(reg_u64s, reg_ptr_len)
|
||||
SHRQ(U8(3), u64s) // SHR(reg_u64s, 3)
|
||||
//
|
||||
labels := makelabels("shortCore", 4) // labels = [Label("shortCore%d" % i) for i in range(4)]
|
||||
//
|
||||
for i := 0; i < 4; i++ { // for i in range(4):
|
||||
CMPQ(u64s, Imm(i)) // CMP(reg_u64s, i)
|
||||
CMPQ(u64s, U32(i)) // CMP(reg_u64s, i)
|
||||
JE(LabelRef(labels[i])) // JE(labels[i])
|
||||
} //
|
||||
for i := 3; i > 0; i-- { // for i in range(3, 0, -1):
|
||||
@@ -80,12 +80,12 @@ func main() {
|
||||
MOVQ(Mem{Base: ptr}, r) // MOV(r, [reg_ptr])
|
||||
imul(k3U64, r) // imul(r, k3U64)
|
||||
ADDQ(r, v0) // ADD(reg_v0, r)
|
||||
RORQ(Imm(17), v0) // ROR(reg_v0, 17)
|
||||
RORQ(U8(17), v0) // ROR(reg_v0, 17)
|
||||
XORQ(v1, v0) // XOR(reg_v0, reg_v1)
|
||||
RORQ(Imm(53), v1) // ROR(reg_v1, 53)
|
||||
RORQ(U8(53), v1) // ROR(reg_v1, 53)
|
||||
ADDQ(v0, v1) // ADD(reg_v1, reg_v0)
|
||||
ADDQ(Imm(8), ptr) // ADD(reg_ptr,8)
|
||||
SUBQ(Imm(8), n) // SUB(reg_ptr_len,8)
|
||||
ADDQ(U32(8), ptr) // ADD(reg_ptr,8)
|
||||
SUBQ(U32(8), n) // SUB(reg_ptr_len,8)
|
||||
} //
|
||||
LABEL(labels[0]) // LABEL(labels[0])
|
||||
//
|
||||
@@ -93,7 +93,7 @@ func main() {
|
||||
//
|
||||
// split(labels, reg_ptr_len,0,7)
|
||||
for i := 0; i < 8; i++ {
|
||||
CMPQ(n, Imm(i))
|
||||
CMPQ(n, U32(i))
|
||||
JE(LabelRef(labels[i]))
|
||||
}
|
||||
//
|
||||
@@ -103,17 +103,17 @@ func main() {
|
||||
//
|
||||
LABEL(labels[7]) // LABEL(labels[7])
|
||||
MOVBQZX(Mem{Base: ptr, Disp: 6}, ch) // MOVZX(reg_ch, byte[reg_ptr+6])
|
||||
SHLQ(Imm(32), ch) // SHL(reg_ch, 32)
|
||||
SHLQ(U8(32), ch) // SHL(reg_ch, 32)
|
||||
ADDQ(ch, v0) // ADD(reg_v0, reg_ch)
|
||||
//
|
||||
LABEL(labels[6]) // LABEL(labels[6])
|
||||
MOVBQZX(Mem{Base: ptr, Disp: 5}, ch) // MOVZX(reg_ch, byte[reg_ptr+5])
|
||||
SHLQ(Imm(48), ch) // SHL(reg_ch, 48)
|
||||
SHLQ(U8(48), ch) // SHL(reg_ch, 48)
|
||||
ADDQ(ch, v1) // ADD(reg_v1, reg_ch)
|
||||
//
|
||||
LABEL(labels[5]) // LABEL(labels[5])
|
||||
MOVBQZX(Mem{Base: ptr, Disp: 4}, ch) // MOVZX(reg_ch, byte[reg_ptr+4])
|
||||
SHLQ(Imm(16), ch) // SHL(reg_ch, 16)
|
||||
SHLQ(U8(16), ch) // SHL(reg_ch, 16)
|
||||
ADDQ(ch, v0) // ADD(reg_v0, reg_ch)
|
||||
//
|
||||
LABEL(labels[4]) // LABEL(labels[4])
|
||||
@@ -125,7 +125,7 @@ func main() {
|
||||
//
|
||||
LABEL(labels[3]) // LABEL(labels[3])
|
||||
MOVBQZX(Mem{Base: ptr, Disp: 2}, ch) // MOVZX(reg_ch, byte[reg_ptr+2])
|
||||
SHLQ(Imm(48), ch) // SHL(reg_ch, 48)
|
||||
SHLQ(U8(48), ch) // SHL(reg_ch, 48)
|
||||
ADDQ(ch, v0) // ADD(reg_v0, reg_ch)
|
||||
//
|
||||
LABEL(labels[2]) // LABEL(labels[2])
|
||||
@@ -140,46 +140,46 @@ func main() {
|
||||
ADDQ(ch, v0) // ADD(reg_v0, reg_ch)
|
||||
//
|
||||
LABEL(labels[0]) // LABEL(labels[0])
|
||||
RORQ(Imm(32), v1) // ROR(reg_v1, 32)
|
||||
XORQ(Imm(0xff), v1) // XOR(reg_v1, 0xFF)
|
||||
RORQ(U8(32), v1) // ROR(reg_v1, 32)
|
||||
XORQ(U32(0xff), v1) // XOR(reg_v1, 0xFF)
|
||||
//
|
||||
LABEL(after) // LABEL(after)
|
||||
//
|
||||
XORQ(v0, v1) // XOR(reg_v1, reg_v0)
|
||||
//
|
||||
RORQ(Imm(33), v0) // ROR(reg_v0, 33)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
RORQ(U8(33), v0) // ROR(reg_v0, 33)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
//
|
||||
ROLQ(Imm(17), v1) // ROL(reg_v1, 17)
|
||||
XORQ(v0, v1) // XOR(reg_v1, reg_v0)
|
||||
ROLQ(U8(17), v1) // ROL(reg_v1, 17)
|
||||
XORQ(v0, v1) // XOR(reg_v1, reg_v0)
|
||||
//
|
||||
ROLQ(Imm(43), v0) // ROL(reg_v0, 43)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
ROLQ(U8(43), v0) // ROL(reg_v0, 43)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
//
|
||||
ROLQ(Imm(31), v1) // ROL(reg_v1, 31)
|
||||
SUBQ(v0, v1) // SUB(reg_v1, reg_v0)
|
||||
ROLQ(U8(31), v1) // ROL(reg_v1, 31)
|
||||
SUBQ(v0, v1) // SUB(reg_v1, reg_v0)
|
||||
//
|
||||
ROLQ(Imm(13), v0) // ROL(reg_v0, 13)
|
||||
XORQ(v1, v0) // XOR(reg_v0, reg_v1)
|
||||
ROLQ(U8(13), v0) // ROL(reg_v0, 13)
|
||||
XORQ(v1, v0) // XOR(reg_v0, reg_v1)
|
||||
//
|
||||
SUBQ(v0, v1) // SUB(reg_v1, reg_v0)
|
||||
//
|
||||
ROLQ(Imm(41), v0) // ROL(reg_v0, 41)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
ROLQ(U8(41), v0) // ROL(reg_v0, 41)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
//
|
||||
ROLQ(Imm(37), v1) // ROL(reg_v1, 37)
|
||||
XORQ(v0, v1) // XOR(reg_v1, reg_v0)
|
||||
ROLQ(U8(37), v1) // ROL(reg_v1, 37)
|
||||
XORQ(v0, v1) // XOR(reg_v1, reg_v0)
|
||||
//
|
||||
RORQ(Imm(39), v0) // ROR(reg_v0, 39)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
RORQ(U8(39), v0) // ROR(reg_v0, 39)
|
||||
ADDQ(v1, v0) // ADD(reg_v0, reg_v1)
|
||||
//
|
||||
RORQ(Imm(15), v1) // ROR(reg_v1, 15)
|
||||
ADDQ(v0, v1) // ADD(reg_v1, reg_v0)
|
||||
RORQ(U8(15), v1) // ROR(reg_v1, 15)
|
||||
ADDQ(v0, v1) // ADD(reg_v1, reg_v0)
|
||||
//
|
||||
ROLQ(Imm(15), v0) // ROL(reg_v0, 15)
|
||||
XORQ(v1, v0) // XOR(reg_v0, reg_v1)
|
||||
ROLQ(U8(15), v0) // ROL(reg_v0, 15)
|
||||
XORQ(v1, v0) // XOR(reg_v0, reg_v1)
|
||||
//
|
||||
RORQ(Imm(5), v1) // ROR(reg_v1, 5)
|
||||
RORQ(U8(5), v1) // ROR(reg_v1, 5)
|
||||
//
|
||||
XORQ(v1, v0) // XOR(reg_v0, reg_v1)
|
||||
//
|
||||
@@ -196,12 +196,12 @@ func main() {
|
||||
//
|
||||
// t = GeneralPurposeRegister64()
|
||||
MOVQ(n, t) // MOV(t, reg_ptr_len)
|
||||
ADDQ(Imm(3), t) // ADD(t, 3)
|
||||
ADDQ(U32(3), t) // ADD(t, 3)
|
||||
imul(k2U64, t) // imul(t, k2U64)
|
||||
XORQ(t, v2) // XOR(reg_v2, t)
|
||||
//
|
||||
MOVQ(n, t) // MOV(t, reg_ptr_len)
|
||||
ADDQ(Imm(4), t) // ADD(t, 4)
|
||||
ADDQ(U32(4), t) // ADD(t, 4)
|
||||
imul(k3U64, t) // imul(t, k3U64)
|
||||
XORQ(t, v3) // XOR(reg_v3, t)
|
||||
//
|
||||
@@ -211,31 +211,31 @@ func main() {
|
||||
MOVQ(Mem{Base: ptr}, r) // MOV(r, [reg_ptr])
|
||||
imul(k2U32, r) // imul(r, k2U32)
|
||||
ADDQ(r, v0) // ADD(reg_v0, r)
|
||||
ROLQ(Imm(57), v0) // ROL(reg_v0, 57)
|
||||
ROLQ(U8(57), v0) // ROL(reg_v0, 57)
|
||||
XORQ(v3, v0) // XOR(reg_v0, reg_v3)
|
||||
//
|
||||
MOVQ(Mem{Base: ptr, Disp: 8}, r) // MOV(r, [reg_ptr + 8])
|
||||
imul(k3U32, r) // imul(r, k3U32)
|
||||
ADDQ(r, v1) // ADD(reg_v1, r)
|
||||
ROLQ(Imm(63), v1) // ROL(reg_v1, 63)
|
||||
ROLQ(U8(63), v1) // ROL(reg_v1, 63)
|
||||
XORQ(v2, v1) // XOR(reg_v1, reg_v2)
|
||||
//
|
||||
MOVQ(Mem{Base: ptr, Disp: 16}, r) // MOV(r, [reg_ptr + 16])
|
||||
imul(k4U32, r) // imul(r, k4U32)
|
||||
ADDQ(r, v2) // ADD(reg_v2, r)
|
||||
RORQ(Imm(47), v2) // ROR(reg_v2, 47)
|
||||
RORQ(U8(47), v2) // ROR(reg_v2, 47)
|
||||
ADDQ(v0, v2) // ADD(reg_v2, reg_v0)
|
||||
//
|
||||
MOVQ(Mem{Base: ptr, Disp: 24}, r) // MOV(r, [reg_ptr + 24])
|
||||
imul(k5U32, r) // imul(r, k5U32)
|
||||
ADDQ(r, v3) // ADD(reg_v3, r)
|
||||
RORQ(Imm(11), v3) // ROR(reg_v3, 11)
|
||||
RORQ(U8(11), v3) // ROR(reg_v3, 11)
|
||||
SUBQ(v1, v3) // SUB(reg_v3, reg_v1)
|
||||
//
|
||||
ADDQ(Imm(32), ptr) // ADD(reg_ptr, 32)
|
||||
SUBQ(Imm(32), n) // SUB(reg_ptr_len, 32)
|
||||
ADDQ(U32(32), ptr) // ADD(reg_ptr, 32)
|
||||
SUBQ(U32(32), n) // SUB(reg_ptr_len, 32)
|
||||
//
|
||||
CMPQ(n, Imm(32)) // CMP(reg_ptr_len, 32)
|
||||
CMPQ(n, U32(32)) // CMP(reg_ptr_len, 32)
|
||||
JGE(LabelRef(loop)) // JGE(loop.begin)
|
||||
//
|
||||
//
|
||||
@@ -243,13 +243,13 @@ func main() {
|
||||
MOVQ(n, nsave) // MOV(reg_ptr_len_saved, reg_ptr_len)
|
||||
//
|
||||
// reg_u64s = GeneralPurposeRegister64()
|
||||
MOVQ(n, u64s) // MOV(reg_u64s, reg_ptr_len)
|
||||
SHRQ(Imm(3), u64s) // SHR(reg_u64s, 3)
|
||||
MOVQ(n, u64s) // MOV(reg_u64s, reg_ptr_len)
|
||||
SHRQ(U8(3), u64s) // SHR(reg_u64s, 3)
|
||||
//
|
||||
labels = makelabels("longCore", 4) // labels = [Label("longCore%d" % i) for i in range(4)]
|
||||
//
|
||||
for i := 0; i < 4; i++ { // for i in range(4):
|
||||
CMPQ(u64s, Imm(i)) // CMP(reg_u64s, i)
|
||||
CMPQ(u64s, U32(i)) // CMP(reg_u64s, i)
|
||||
JE(LabelRef(labels[i])) // JE(labels[i])
|
||||
} //
|
||||
LABEL(labels[3]) // LABEL(labels[3])
|
||||
@@ -257,37 +257,37 @@ func main() {
|
||||
MOVQ(Mem{Base: ptr}, r) // MOV(r, [reg_ptr])
|
||||
imul(k2U32, r) // imul(r, k2U32)
|
||||
ADDQ(r, v0) // ADD(reg_v0, r)
|
||||
ROLQ(Imm(57), v0) // ROL(reg_v0, 57)
|
||||
ROLQ(U8(57), v0) // ROL(reg_v0, 57)
|
||||
XORQ(v3, v0) // XOR(reg_v0, reg_v3)
|
||||
ADDQ(Imm(8), ptr) // ADD(reg_ptr, 8)
|
||||
SUBQ(Imm(8), n) // SUB(reg_ptr_len, 8)
|
||||
ADDQ(U32(8), ptr) // ADD(reg_ptr, 8)
|
||||
SUBQ(U32(8), n) // SUB(reg_ptr_len, 8)
|
||||
//
|
||||
LABEL(labels[2]) // LABEL(labels[2])
|
||||
//
|
||||
MOVQ(Mem{Base: ptr}, r) // MOV(r, [reg_ptr])
|
||||
imul(k3U32, r) // imul(r, k3U32)
|
||||
ADDQ(r, v1) // ADD(reg_v1, r)
|
||||
ROLQ(Imm(63), v1) // ROL(reg_v1, 63)
|
||||
ROLQ(U8(63), v1) // ROL(reg_v1, 63)
|
||||
XORQ(v2, v1) // XOR(reg_v1, reg_v2)
|
||||
ADDQ(Imm(8), ptr) // ADD(reg_ptr, 8)
|
||||
SUBQ(Imm(8), n) // SUB(reg_ptr_len, 8)
|
||||
ADDQ(U32(8), ptr) // ADD(reg_ptr, 8)
|
||||
SUBQ(U32(8), n) // SUB(reg_ptr_len, 8)
|
||||
//
|
||||
LABEL(labels[1]) // LABEL(labels[1])
|
||||
//
|
||||
MOVQ(Mem{Base: ptr}, r) // MOV(r, [reg_ptr])
|
||||
imul(k4U32, r) // imul(r, k4U32)
|
||||
ADDQ(r, v2) // ADD(reg_v2, r)
|
||||
RORQ(Imm(47), v2) // ROR(reg_v2, 47)
|
||||
RORQ(U8(47), v2) // ROR(reg_v2, 47)
|
||||
ADDQ(v0, v2) // ADD(reg_v2, reg_v0)
|
||||
ADDQ(Imm(8), ptr) // ADD(reg_ptr, 8)
|
||||
SUBQ(Imm(8), n) // SUB(reg_ptr_len, 8)
|
||||
ADDQ(U32(8), ptr) // ADD(reg_ptr, 8)
|
||||
SUBQ(U32(8), n) // SUB(reg_ptr_len, 8)
|
||||
//
|
||||
LABEL(labels[0]) // LABEL(labels[0])
|
||||
//
|
||||
RORQ(Imm(11), v3) // ROR(reg_v3, 11)
|
||||
SUBQ(v1, v3) // SUB(reg_v3, reg_v1)
|
||||
RORQ(U8(11), v3) // ROR(reg_v3, 11)
|
||||
SUBQ(v1, v3) // SUB(reg_v3, reg_v1)
|
||||
//
|
||||
ADDQ(Imm(1), nsave) // ADD(reg_ptr_len_saved, 1)
|
||||
ADDQ(U32(1), nsave) // ADD(reg_ptr_len_saved, 1)
|
||||
imul(k3U64, nsave) // imul(reg_ptr_len_saved, k3U64)
|
||||
XORQ(nsave, v0) // XOR(reg_v0, reg_ptr_len_saved)
|
||||
//
|
||||
@@ -295,7 +295,7 @@ func main() {
|
||||
//
|
||||
// split(labels, reg_ptr_len, 0, 7)
|
||||
for i := 0; i < 8; i++ {
|
||||
CMPQ(n, Imm(i))
|
||||
CMPQ(n, U32(i))
|
||||
JE(LabelRef(labels[i]))
|
||||
}
|
||||
//
|
||||
@@ -342,45 +342,45 @@ func main() {
|
||||
ADDQ(ch, v2) // ADD(reg_v2, reg_ch)
|
||||
//
|
||||
LABEL(labels[0]) // LABEL(labels[0])
|
||||
ROLQ(Imm(32), v3) // ROL(reg_v3, 32)
|
||||
XORQ(Imm(0xff), v3) // XOR(reg_v3, 0xFF)
|
||||
ROLQ(U8(32), v3) // ROL(reg_v3, 32)
|
||||
XORQ(U32(0xff), v3) // XOR(reg_v3, 0xFF)
|
||||
//
|
||||
LABEL(after) // LABEL(after)
|
||||
//
|
||||
// ## finalize
|
||||
//
|
||||
SUBQ(v2, v1) // SUB(reg_v1, reg_v2)
|
||||
RORQ(Imm(19), v0) // ROR(reg_v0, 19)
|
||||
SUBQ(v0, v1) // SUB(reg_v1, reg_v0)
|
||||
RORQ(Imm(53), v1) // ROR(reg_v1, 53)
|
||||
XORQ(v1, v3) // XOR(reg_v3, reg_v1)
|
||||
SUBQ(v3, v0) // SUB(reg_v0, reg_v3)
|
||||
ROLQ(Imm(43), v3) // ROL(reg_v3, 43)
|
||||
ADDQ(v3, v0) // ADD(reg_v0, reg_v3)
|
||||
RORQ(Imm(3), v0) // ROR(reg_v0, 3)
|
||||
SUBQ(v0, v3) // SUB(reg_v3, reg_v0)
|
||||
RORQ(Imm(43), v2) // ROR(reg_v2, 43)
|
||||
SUBQ(v3, v2) // SUB(reg_v2, reg_v3)
|
||||
ROLQ(Imm(55), v2) // ROL(reg_v2, 55)
|
||||
XORQ(v0, v2) // XOR(reg_v2, reg_v0)
|
||||
SUBQ(v2, v1) // SUB(reg_v1, reg_v2)
|
||||
RORQ(Imm(7), v3) // ROR(reg_v3, 7)
|
||||
SUBQ(v2, v3) // SUB(reg_v3, reg_v2)
|
||||
RORQ(Imm(31), v2) // ROR(reg_v2, 31)
|
||||
ADDQ(v2, v3) // ADD(reg_v3, reg_v2)
|
||||
SUBQ(v1, v2) // SUB(reg_v2, reg_v1)
|
||||
RORQ(Imm(39), v3) // ROR(reg_v3, 39)
|
||||
XORQ(v3, v2) // XOR(reg_v2, reg_v3)
|
||||
RORQ(Imm(17), v3) // ROR(reg_v3, 17)
|
||||
XORQ(v2, v3) // XOR(reg_v3, reg_v2)
|
||||
ADDQ(v3, v1) // ADD(reg_v1, reg_v3)
|
||||
RORQ(Imm(9), v1) // ROR(reg_v1, 9)
|
||||
XORQ(v1, v2) // XOR(reg_v2, reg_v1)
|
||||
ROLQ(Imm(24), v2) // ROL(reg_v2, 24)
|
||||
XORQ(v2, v3) // XOR(reg_v3, reg_v2)
|
||||
RORQ(Imm(59), v3) // ROR(reg_v3, 59)
|
||||
RORQ(Imm(1), v0) // ROR(reg_v0, 1)
|
||||
SUBQ(v1, v0) // SUB(reg_v0, reg_v1)
|
||||
SUBQ(v2, v1) // SUB(reg_v1, reg_v2)
|
||||
RORQ(U8(19), v0) // ROR(reg_v0, 19)
|
||||
SUBQ(v0, v1) // SUB(reg_v1, reg_v0)
|
||||
RORQ(U8(53), v1) // ROR(reg_v1, 53)
|
||||
XORQ(v1, v3) // XOR(reg_v3, reg_v1)
|
||||
SUBQ(v3, v0) // SUB(reg_v0, reg_v3)
|
||||
ROLQ(U8(43), v3) // ROL(reg_v3, 43)
|
||||
ADDQ(v3, v0) // ADD(reg_v0, reg_v3)
|
||||
RORQ(U8(3), v0) // ROR(reg_v0, 3)
|
||||
SUBQ(v0, v3) // SUB(reg_v3, reg_v0)
|
||||
RORQ(U8(43), v2) // ROR(reg_v2, 43)
|
||||
SUBQ(v3, v2) // SUB(reg_v2, reg_v3)
|
||||
ROLQ(U8(55), v2) // ROL(reg_v2, 55)
|
||||
XORQ(v0, v2) // XOR(reg_v2, reg_v0)
|
||||
SUBQ(v2, v1) // SUB(reg_v1, reg_v2)
|
||||
RORQ(U8(7), v3) // ROR(reg_v3, 7)
|
||||
SUBQ(v2, v3) // SUB(reg_v3, reg_v2)
|
||||
RORQ(U8(31), v2) // ROR(reg_v2, 31)
|
||||
ADDQ(v2, v3) // ADD(reg_v3, reg_v2)
|
||||
SUBQ(v1, v2) // SUB(reg_v2, reg_v1)
|
||||
RORQ(U8(39), v3) // ROR(reg_v3, 39)
|
||||
XORQ(v3, v2) // XOR(reg_v2, reg_v3)
|
||||
RORQ(U8(17), v3) // ROR(reg_v3, 17)
|
||||
XORQ(v2, v3) // XOR(reg_v3, reg_v2)
|
||||
ADDQ(v3, v1) // ADD(reg_v1, reg_v3)
|
||||
RORQ(U8(9), v1) // ROR(reg_v1, 9)
|
||||
XORQ(v1, v2) // XOR(reg_v2, reg_v1)
|
||||
ROLQ(U8(24), v2) // ROL(reg_v2, 24)
|
||||
XORQ(v2, v3) // XOR(reg_v3, reg_v2)
|
||||
RORQ(U8(59), v3) // ROR(reg_v3, 59)
|
||||
RORQ(U8(1), v0) // ROR(reg_v0, 1)
|
||||
SUBQ(v1, v0) // SUB(reg_v0, reg_v1)
|
||||
//
|
||||
XORQ(v1, v0) // XOR(reg_v0, reg_v1)
|
||||
XORQ(v3, v2) // XOR(reg_v2, reg_v3)
|
||||
|
||||
Reference in New Issue
Block a user