pub enum Op {
Show 70 variants
Add(Reg, Reg, Reg),
Sub(Reg, Reg, Reg),
Mul(Reg, Reg, Reg),
Div(Reg, Reg, Reg),
Mod(Reg, Reg, Reg),
AddSat(Reg, Reg, Reg),
SubSat(Reg, Reg, Reg),
And(Reg, Reg, Reg),
Or(Reg, Reg, Reg),
Xor(Reg, Reg, Reg),
Not(Reg, Reg),
Shl(Reg, Reg, u8),
Shr(Reg, Reg, u8),
Eq(Reg, Reg, Reg),
Ne(Reg, Reg, Reg),
Lt(Reg, Reg, Reg),
Lte(Reg, Reg, Reg),
Gt(Reg, Reg, Reg),
Gte(Reg, Reg, Reg),
IsZero(Reg, Reg),
Jump(u32),
JumpIf(Reg, u32),
JumpIfNot(Reg, u32),
Call(u32),
Return,
Halt,
Trap(u16),
LoadConst(Reg, u16),
LoadImm8(Reg, u8),
LoadImm64(Reg, u64),
Move(Reg, Reg),
Swap(Reg, Reg),
SLoad(Reg, Reg),
SStore(Reg, Reg),
SDelete(Reg),
GetCaller(Reg),
GetOwner(Reg),
GetCellId(Reg),
GetHeight(Reg),
GetTimestamp(Reg),
GetValue(Reg),
GetCalldataLen(Reg),
GetCalldata(Reg, Reg),
SetReturn(Reg, Reg),
SetReturnReg(Reg, Reg),
EmitLog(Reg, Reg),
EmitLogReg(Reg, Reg, Reg),
CallCell(Reg, Reg, Reg, Reg),
BufReset,
BufWriteConst(u16),
BufWriteReg(Reg),
BufCallCell(Reg, Reg),
BufSetReturn,
Hash32(Reg, Reg),
Hash32Const(Reg, u16),
RequireOwner,
RequireCaller(Reg),
RequireEq(Reg, Reg),
RequireNe(Reg, Reg),
RequireLt(Reg, Reg),
RequireNonZero(Reg),
RequireGas(u64),
TokenBalance(Reg, Reg, Reg),
TokenTransfer(Reg, Reg, Reg, Reg),
TokenMint(Reg, Reg, Reg),
TokenBurn(Reg, Reg, Reg),
TokenFreeze(Reg, Reg),
TokenThaw(Reg, Reg),
AccordRequest(Reg, Reg, Reg, Reg),
AccordRead(Reg, Reg),
}Variants§
Add(Reg, Reg, Reg)
Sub(Reg, Reg, Reg)
Mul(Reg, Reg, Reg)
Div(Reg, Reg, Reg)
Mod(Reg, Reg, Reg)
AddSat(Reg, Reg, Reg)
SubSat(Reg, Reg, Reg)
And(Reg, Reg, Reg)
Or(Reg, Reg, Reg)
Xor(Reg, Reg, Reg)
Not(Reg, Reg)
Shl(Reg, Reg, u8)
Shr(Reg, Reg, u8)
Eq(Reg, Reg, Reg)
Ne(Reg, Reg, Reg)
Lt(Reg, Reg, Reg)
Lte(Reg, Reg, Reg)
Gt(Reg, Reg, Reg)
Gte(Reg, Reg, Reg)
IsZero(Reg, Reg)
Jump(u32)
JumpIf(Reg, u32)
JumpIfNot(Reg, u32)
Call(u32)
Return
Halt
Trap(u16)
LoadConst(Reg, u16)
LoadImm8(Reg, u8)
LoadImm64(Reg, u64)
Move(Reg, Reg)
Swap(Reg, Reg)
SLoad(Reg, Reg)
SStore(Reg, Reg)
SDelete(Reg)
GetCaller(Reg)
GetOwner(Reg)
GetCellId(Reg)
GetHeight(Reg)
GetTimestamp(Reg)
GetValue(Reg)
GetCalldataLen(Reg)
GetCalldata(Reg, Reg)
SetReturn(Reg, Reg)
SetReturnReg(Reg, Reg)
set_return_data from register (data_reg holds ptr into calldata, len_reg holds length)
EmitLog(Reg, Reg)
EmitLogReg(Reg, Reg, Reg)
emit_log with topic, data, and length from registers
CallCell(Reg, Reg, Reg, Reg)
BufReset
Reset the call buffer and set write cursor to 0.
BufWriteConst(u16)
Append a const-pool entry (arbitrary bytes) to the call buffer.
BufWriteReg(Reg)
Append 32 bytes from a register to the call buffer.
BufCallCell(Reg, Reg)
Call a cell using the call buffer as calldata. BufCallCell(cell_reg, value_reg) - result flag written to r1.
BufSetReturn
Set return data from the call buffer contents.
Hash32(Reg, Reg)
Hash32Const(Reg, u16)
RequireOwner
RequireCaller(Reg)
RequireEq(Reg, Reg)
RequireNe(Reg, Reg)
RequireLt(Reg, Reg)
RequireNonZero(Reg)
RequireGas(u64)
TokenBalance(Reg, Reg, Reg)
dst = token_balance(token_reg, account_reg) → u128 in low 16 bytes
TokenTransfer(Reg, Reg, Reg, Reg)
token_transfer(token_reg, from_reg, to_reg, amount_reg)
TokenMint(Reg, Reg, Reg)
token_mint(token_reg, recipient_reg, amount_reg)
TokenBurn(Reg, Reg, Reg)
token_burn(token_reg, owner_reg, amount_reg)
TokenFreeze(Reg, Reg)
token_freeze(token_reg, account_reg)
TokenThaw(Reg, Reg)
token_thaw(token_reg, account_reg)
AccordRequest(Reg, Reg, Reg, Reg)
Submit an accord request. Returns request_id in dst. accord_request(dst_reg, url_const_idx_reg, method_reg, body_const_idx_reg)
AccordRead(Reg, Reg)
Read accord response into dst. Returns 0 if pending, 1 if ready. accord_read(dst_reg, request_id_reg)