Skip to content

omarandlorraine/strop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

554 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

strop

Build Status crates.io

strop, the stochastic optimizer, written in Rust.

Like a compiler, strop generates assembly that computes a given function. But unlike a compiler, it generates assembly-language subroutines by a random search or a brute-force search.

Ancillary documents:

What it's for

To see what strop could be used for:

  • gen generates a function matching the Rust function, after a fashion compiling Rust to whichever target the user specifies.
  • peephole discovers lacunae in the peephole optimizers and other constraints

Supported instruction sets:

Strop currently has the following back-ends:

  • armv4t, which targets the ARMv4T processors, such as the ARM7TDMI
  • m6502, targets various models of the MOS 6502
    • Supports the NMOS and CMOS variants and others, thanks to the mos6502 dependency.
  • m6809, which targets the Motorola 6809
  • z80, which targets the Zilog Z80
  • sm83, which targets the SM83, also known as the Gameboy CPU
  • i8080, which targets the Intel 8080.
  • mips, which targets the MIPS I architecture
    • Supports the GTE coprocessor found in a Playstation 1, thanks to the trapezoid-core dependency.
    • Does not support hardware floating point since emulation for that is lacking, but softfloat is supposed to work

About

Stochastically generates machine code

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages