Git Product home page Git Product logo

opcodesdb's Introduction

opcodesDB:

opcodesDB is a CPU low level environment representation (registers, flags, instructions, ...). Data are listed in a packed dynamic structure which can be unpacked by a parser at any time.

This project is a fruit of many years of development and a lot of attempts (Parsable-Instructions, asmdb) to standardize CPU environment.

Currently, it supports the following architectures:

  • x86 : with all its extensions : FPU, MMX, SSE, FMA, AVX, AVX512. also it supports xeon instructions(KNC, KNL, ...).
  • aarch32: arm and thumb instructions(ARMv8+).
  • aarch64: ARMv8+ and SVE extension.

Whats new in version 3 ?

  • added aarch32 support.
  • added aarch64 support.
  • added xeon instruction set.
  • improved x86 instructions definition.

How to use it ?

you just need to run x86.pl, aarch32.pl, aarch64.pl and for each architecture, opcodesDB will generate a very big json file that contains all the architecture environment(instructions, registers, enums, tables, ...). All generated files (x86.json, aarch32.json, aarch64.json) are stored in the json folder.

opcodesdb's People

Contributors

mahdisafsafi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opcodesdb's Issues

Relative module paths don't work on Windows/Strawberry

In order to find core.pl, LogOnce.pm, etc., the local lib path must be manually set to include the current directory. I resolved this issue by setting PERL5LIB=.. Tested on Windows using Strawberry Perl.

(I have very little experience with Perl, so this may not be a bug at all; seems unusual, though)

Can't locate core.pl in @INC (@INC contains: C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at C:/Users/.../opcodesDB/x86.pl line 25.

Can't open nonexistent dir/file for write

When exporting the JSON output, if the json directory doesn't exist, no output is written. It does work when the directory exists, but the file does not (e.g. x86.json). Regardless of if the write succeeds, the program exits with code 0. Tested on Windows using Strawberry Perl.

print() on closed filehandle $fh at C:/Users/.../opcodesDB/x86.pl line 128.

Typo in line 136 of x86.pl, no?

ymm => { type => 'ymmreg', size => 256, names => [ map 'zmm' . $_, 0 .. 31 ] },

'zmm' should be 'ymm'

ymm => { type => 'ymmreg', size => 256, names => [ map 'ymm' . $_, 0 .. 31 ] },

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.