Commit Graph

43 Commits

Author SHA1 Message Date
Angie
69f69357f7 Move all the tables into a tables folder 2023-05-02 19:01:54 -04:00
angie
f61d37b4a6 Change builds for every machine to only be ran on new releases 2023-04-30 10:00:04 -04:00
angie
a2dfabea4f Some actions cleanup 2023-04-30 09:47:00 -04:00
angie
c514a2da46 Automatically look up every C file when building the Python bindings 2023-04-17 22:40:07 -04:00
angie
75fe4e4fe3 use registerdescriptors 2022-12-19 18:38:05 -03:00
Anghelo Carvajal
fb8c1edbd7
Rust bindings (#17)
* Generate bindings for enums

* Add .gitignore Cargo didn't automatically made

* Actually build the files into the library

* `pub` in `mod` to fix warning

* instruction struct

* Instruction rust binding

* Add InstrId::ALL_MAX

* link C library to rust

* Publish crate CI

* test

* config bindings

* add getters for registers

* add names methods for register enums

* get_operand_type

* feedback from simon

* Forgot to add new file to python setup.py

* get_operands_slice

* add stuff to cargo.toml
2022-12-18 15:15:39 -03:00
Angie
6fad5e740a InstrCategory.fromStr 2022-10-14 18:49:59 -03:00
angie
7cec779b85 AccessType enum 2022-10-13 19:41:46 -03:00
angie
5b04520269 cleanup 2022-10-13 18:32:24 -03:00
angie
1e4dd7ea48 Expose OperandType to Python 2022-10-13 15:27:11 -03:00
Anghelo Carvajal
acee144578
C++ bindings (#9)
* start making c++ bindings

* Add sanity checks

* add descriptor methods

* setup making c++ library

* cpp test

* format (not tidy because it breaks everything and the result looks dumb)

* Fixes

* add missing alias

* move stuff to their own files

* InstructionRsp bindings

* r5900 bindings

* almost there

* binding for analysis stuff

* setters
2022-10-09 17:51:47 -03:00
angie
079c2b6b10 Add version header 2022-09-26 11:15:28 -03:00
angie
8a61b1d658 Expose TrackedRegisterState as a debugging measure 2022-09-14 14:31:13 -03:00
angie
04b31eff1a RegistersTracker.preprocessLoAndGetInfo 2022-09-13 14:05:42 -03:00
Anghelo Carvajal
136fb7a09a
Add R5900 support (#5)
* starting r5900 stuff

* operands of pmaddh

* expose R5900 to python

* fix merge issues

* move to subtables

* mmi0 and mmi3

* the rest of mmi instructions

* normal, special, regimm and cop0

* fpu_s

* cop2 special1

* starting cop2 special2

* the rest of special2

* operands for normal, special, mmi and mmi0

* mmi1 and mmi2

* Fix mmi

* sync.p

* mmi3 and cop1

* add r5900 opcodes to InstrId.pyi

* add invalid bits to unknown instruction comment

* progress on cop2 special1

* kinda finish cop2 special1

* cop2 special2 progress

* Special case for R5900 cvt.w.s -> trunc.w.s

* R5900 c.olt.s and c.ole.s

* Fix a bunch of VU0 instructions

* I'm getting tired of this bullshit

* vlqi, vsqi, vlqd, vsqd

* fix some operands

* fix div1

* lqc2 and sqc2

* sqrt.s and mult

* fix mtsa and bc2

* Remove redundant .instrType=RABBITIZER_INSTR_TYPE_UNKNOWN

* RabbitizerInstrSuffix

* Impleme instr suffix type

* add instr suffix to remaining instructions

* ifdef out xyzw suffix from registers

* format

* fix warnings

* uncomment stuff on InstrId.pyi

* readme
2022-08-27 12:22:48 -04:00
angie
c8ecfb600e Expose Gpr registers enums to python 2022-07-05 09:49:12 -04:00
Angie
568a0662f2 remove redundant functions 2022-07-05 00:53:28 -04:00
angie
739ba4cb63 First draft for exposing RegistersTracker to python 2022-06-11 19:43:05 -04:00
angie
b3843f271e starting to port RegistersTracker 2022-06-11 17:49:33 -04:00
angie
6ea5bd0f5e TrackedRegisterState 2022-06-10 19:15:46 -04:00
Ethan Roseman
c81cc49a65
cibuildwheel (ci/cd) (#1)
* cibuildwheel attempt

* fixes

* skip pypy

* re-enable pypy

* try no pypy 3.7

* try again

* try winders

* remove snibblets
2022-06-10 14:50:23 -04:00
angie
fa178243ee Remove some warnings flags because windows bad 2022-06-10 14:30:03 -04:00
angie
cf86945db5 Expose Utils module 2022-06-10 12:08:06 -04:00
angie
43e8815ad5 Abi enum 2022-06-09 22:58:31 -04:00
angie
30c5151763 "Proper" InstrId enum 2022-06-09 14:30:39 -04:00
angie
cca3a10100 Expose InstrCategory enum to python 2022-06-09 12:06:49 -04:00
angie
e16a7c9e88 enum type 2022-06-09 00:54:47 -04:00
angie
d68751a1f9 Rename RabbitizerInstr to RabbitizerInstruction 2022-06-08 00:30:58 -04:00
angie
118ee1cc89 rsp 2022-06-07 03:16:09 -04:00
angie
9b4ac24ca5 macro abuse on Disassemble 2022-06-07 00:49:37 -04:00
angie
185a934081 First batch of rsp stuff 2022-06-06 22:19:42 -04:00
angie
3acf9fceb0 fix stubs 2022-06-06 17:14:17 -04:00
angie
7125a90d62 blankOut and sameOpcode 2022-06-06 02:02:27 -04:00
angie
d0daf4f650 stub 2022-06-05 22:09:25 -04:00
angie
edc2fe221e Change how instr_id is exposed to python 2022-06-05 19:46:40 -04:00
angie
fec4cc2b1d Fixing warnings 2022-06-05 19:03:39 -04:00
angie
1b9095a79c expose configuration global variable to python 2022-06-05 16:21:43 -04:00
angie
6b7650476f Change capitalization 2022-06-05 13:19:45 -04:00
angie
b01fc41a5a Moving stuff around 2022-06-05 12:25:57 -04:00
angie
b99f17414d RabbitizerConfig 2022-06-05 00:45:20 -04:00
angie
a043492df6 instr_id submodule for exposing opcodes 2022-06-04 14:39:39 -04:00
angie
47fe456d97 split the extension files a bit 2022-06-04 12:28:51 -04:00
angie
900609d8c3 First draft for the python extension 2022-06-04 11:19:03 -04:00