pub struct Assembler {
pub mp: usize,
pub sp: u8,
/* private fields */
}Expand description
Low level assembler implementation for EVM.
Fields§
§mp: usizeMemory pointer for byte offset.
sp: u8Stack pointer, maximum 1024 items.
Implementations§
source§impl Assembler
impl Assembler
sourcepub fn buffer_mut(&mut self) -> &mut Buffer
pub fn buffer_mut(&mut self) -> &mut Buffer
Mutable buffer of the assembler.
sourcepub fn increment_gas(&mut self, gas: u128)
pub fn increment_gas(&mut self, gas: u128)
Increment the gas counter.
TODO: use number bigger than u256 for throwing proper errors. (#21)
sourcepub fn increment_sp(&mut self, items: u8) -> Result<()>
pub fn increment_sp(&mut self, items: u8) -> Result<()>
Increment stack pointer
sourcepub fn decrement_sp(&mut self, items: u8) -> Result<()>
pub fn decrement_sp(&mut self, items: u8) -> Result<()>
Decrement stack pointer
sourcepub fn increment_mp(&mut self, offset: usize) -> Result<()>
pub fn increment_mp(&mut self, offset: usize) -> Result<()>
Increment memory pointer
sourcepub fn decrement_mp(&mut self, offset: usize) -> Result<()>
pub fn decrement_mp(&mut self, offset: usize) -> Result<()>
Decrement memory pointer
source§impl Assembler
impl Assembler
Basic instruction implementations
sourcepub fn _signextend(&mut self) -> Result<()>
pub fn _signextend(&mut self) -> Result<()>
EmitSIGNEXTEND
sourcepub fn _callvalue(&mut self) -> Result<()>
pub fn _callvalue(&mut self) -> Result<()>
EmitCALLVALUE
sourcepub fn _calldataload(&mut self) -> Result<()>
pub fn _calldataload(&mut self) -> Result<()>
EmitCALLDATALOAD
sourcepub fn _calldatasize(&mut self) -> Result<()>
pub fn _calldatasize(&mut self) -> Result<()>
EmitCALLDATASIZE
sourcepub fn _calldatacopy(&mut self) -> Result<()>
pub fn _calldatacopy(&mut self) -> Result<()>
EmitCALLDATACOPY
sourcepub fn _extcodesize(&mut self) -> Result<()>
pub fn _extcodesize(&mut self) -> Result<()>
EmitEXTCODESIZE
sourcepub fn _extcodecopy(&mut self) -> Result<()>
pub fn _extcodecopy(&mut self) -> Result<()>
EmitEXTCODECOPY
sourcepub fn _returndatasize(&mut self) -> Result<()>
pub fn _returndatasize(&mut self) -> Result<()>
EmitRETURNDATASIZE
sourcepub fn _returndatacopy(&mut self) -> Result<()>
pub fn _returndatacopy(&mut self) -> Result<()>
EmitRETURNDATACOPY
sourcepub fn _blockhash(&mut self) -> Result<()>
pub fn _blockhash(&mut self) -> Result<()>
EmitBLOCKHASH
sourcepub fn _timestamp(&mut self) -> Result<()>
pub fn _timestamp(&mut self) -> Result<()>
EmitTIMESTAMP
sourcepub fn _difficulty(&mut self) -> Result<()>
pub fn _difficulty(&mut self) -> Result<()>
EmitDIFFICULTY
sourcepub fn _delegatecall(&mut self) -> Result<()>
pub fn _delegatecall(&mut self) -> Result<()>
EmitDELEGATECALL
sourcepub fn _staticcall(&mut self) -> Result<()>
pub fn _staticcall(&mut self) -> Result<()>
EmitSTATICCALL
sourcepub fn _selfdestruct(&mut self) -> Result<()>
pub fn _selfdestruct(&mut self) -> Result<()>
EmitSELFDESTRUCT
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Assembler
impl Send for Assembler
impl Sync for Assembler
impl Unpin for Assembler
impl UnwindSafe for Assembler
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more