Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mathieugarcia/86f820ac79603f24e28d6ce15c304f9a to your computer and use it in GitHub Desktop.
Save mathieugarcia/86f820ac79603f24e28d6ce15c304f9a to your computer and use it in GitHub Desktop.
Facebook Move Instructions Cheat Sheet: Stack Instructions
Instruction Description
Not Pop boolean 'b' and push !b.
Add† Pop two u64’s 'u1' and 'u2' and push u1 + u2. Fail on overflow.
Sub† Pop two u64’s 'u1' and 'u2' and push u1 - u2. Fail on underflow.
Mul† Pop two u64’s 'u1' and 'u2' and push u1 × u2. Fail on overflow.
Div† Pop two u64’s 'u1' and 'u2' and push u1 ÷ u2. Fail if 'u2' is zero.
Mod† Pop two u64’s 'u1' and 'u2' and push u1 mod 𝑢2. Fail if 'u2' is zero.
BitOr Pop two u64’s 'u1' and 'u2' and push u1 | u2.
BitAnd Pop two u64’s 'u1' and 'u2' and push u1 & u2.
Xor Pop two u64’s 'u1' and 'u2' and push u1 ⊕ u2.
Lt Pop two u64’s 'u1' and 'u2' and push u1 < u2.
Gt Pop two u64’s 'u1' and 'u2' and push u1 > u2.
Le Pop two u64’s 'u1' and 'u2' and push u1 ≤ u2.
Ge Pop two u64’s 'u1' and 'u2' and push u1 ≥ u2.
Or Pop two booleans 'b1' and 'b2' and push b1 ∨ b2.
And Pop two booleans 'b1 and 'b2 and push b1 ∧ b2.
Eq Pop two values 'r1' and 'r2' and push r1 = r2.
Neq Pop two values 'r1' and 'r2 and push r1 ≠ r2.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment