Skip to content

My custom CPU architecture, assembler and emulator for it

Notifications You must be signed in to change notification settings

HyperWinX/HyperCPU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yes

Toolkit for custom ISA

GitHub opened issues Version CI status Status License Stars

HyperCPU is a set of programs, created to work with my own simple ISA. Project was created for fun, but took a lot of time, and i learned a lot in process.

Important

Project is almost ready to be used. Wait for 1.0 release to try it out, or build it locally, test and report found issues.

Tools include:

  • hCPU emulator
  • hASM assembler
  • hASM disassembler

Building guide

Warning

Project requires compiler with C++23 support. CLang 19 and GCC 14 satisfy that requirement.

Dependencies

HyperCPU project has some external dependencies, like:

  • re2
  • libfmt
  • googletest (optional, required for building tests on Release profile)

To install them, use the following listing:

APT-based distros:

sudo apt install libre2-dev libfmt-dev libgtest-dev googletest

Pacman-based distros:

sudo pacman -S re2 fmt gtest

Portage-based distros:

sudo emerge re2 libfmt gtest

Building project

git clone https://github.com/HyperWinX/HyperCPU --recursive && cd HyperCPU
cmake -S. -Bbuild -G "Ninja" -DCMAKE_BUILD_TYPE=Release
ninja -C build default -j8

That's all, all tools are built.

Configuring CMake

Available options:

  • CMAKE_BUILD_TYPE:STRING - should be always specified. Release and Debug builds are available.
  • HCPU_SANITIZERS_ENABLED:BOOL - sanitizers are always enabled even in Release build. Use -DHCPU_SANITIZERS_ENABLED:BOOL=OFF to disable them.

Building documentation

Building documentation requires sphinx installed. After you installed sphinx, go to docs directory and do:

make html

After that, you will get output in docs/_build/html directory. Open index.html to get started.

About

My custom CPU architecture, assembler and emulator for it

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages