Michael Hansen
7560149895
Ensure there is always space after the opcode (some opcode names are longer than 30 characters now)
2023-12-06 11:38:03 -08:00
Michael Hansen
ab6aaf6da3
Convert opcode maps to C++ source with macros.
...
This removes the requirement to run a python script to preprocess the
input files before compiling pycdas/pycdc.
2023-12-05 14:30:33 -08:00
Michael Hansen
20ac52d801
Remove PythonBytecode.txt.
...
The format was somewhat awkward and often redundant. Anything that was
previously documented in the file is now moved to relevant code comments
or tables instead.
2023-12-05 13:43:50 -08:00
Michael Hansen
0c0e3597bd
Add version and parameter info to bytecode_ops.inl
2023-12-05 13:24:00 -08:00
Michael Hansen
795ad1861d
Also show the first line when using --pycode-extra
2023-11-30 12:49:04 -08:00
Michael Hansen
74b8f7eec7
Move LOAD_SUPER_ATTR cases closer to other name cases
2023-11-30 12:37:29 -08:00
Michael Hansen
b424ae8fd7
Refactor disassembly operand formatting to remove single-use functions.
...
This also cleans up an unintentionally duplicated case, and makes it more
obvious when such duplication occurs.
2023-11-30 10:16:00 -08:00
Michael Hansen
9c00554efb
Add basic support for some Instrumented opcodes which should match their
...
non-instrumented versions.
2023-11-18 17:59:24 -08:00
Michael Hansen
9d1e156cec
Correctly decode operand types for many newer opcodes in disassembly
2023-11-18 17:45:35 -08:00
Michael Hansen
a86a6eb54f
Fix a couple of incorrect instructions in Python 3.1
2023-11-18 17:44:36 -08:00
Michael Hansen
3ffbb0aa20
Fix some incorrect opcode tables from Python 1.0-1.4
...
The dis.py from these versions was often out-of-date from the C source.
2023-11-16 14:51:42 -08:00
Michael Hansen
4ecdd1f81b
Remove unused python_NN_unmap() functions
2023-11-16 11:27:31 -08:00
Michael Hansen
0c6128a895
Add missing ACCESS_MODE opcode from Python 1.0-1.4
2023-11-16 11:16:46 -08:00
Michael Hansen
57e16d19d1
Refactor bc_next to more clearly split pre- and post-3.6 behavior
2023-11-16 11:16:46 -08:00
asas1asas200
9ab04e2c0b
Fix CMP0148 warning in CMakeLists.txt (#400)
...
* Fix CMP0148 warning in CMakeLists.txt
* bump cmake minimum required to 3.12
* Fix var name to match new Find module
2023-11-16 08:07:00 -08:00
Jack
5936412a6f
fix #396 Unsupported Node type: 27 (#397)
...
* fix #396 Unsupported Node type: 27
* Add test file
* Modify a little comment
* Modify the test pyc file name
* Delete redundant pyc files
* retest
* Add newline at EOF
---------
Co-authored-by: Michael Hansen <zrax0111@gmail.com >
2023-11-11 10:22:49 -08:00
Michael Hansen
c7d3315156
Clarify prefix check on interned string type
2023-11-09 15:45:43 -08:00
Michael Hansen
21c35b2f4c
Simplify PycDict key/value storage a bit
2023-11-09 15:05:55 -08:00
Michael Hansen
e27faa1e88
Remove unnecessary sequence interface on PycDict
2023-11-09 14:20:15 -08:00
Michael Hansen
9b384ad1fa
Add basic bytecode and disassembly support for Python 3.12
2023-11-09 12:17:03 -08:00
TheHellTower
b32f231e33
Add GEN_START
support (#392)
...
* Apparently should be enough ?
* Add `GEN_START` test
* Add `GEN_START` test compiled
* Add `GEN_START` test tokenized
* Smaller test since only POP is needed.
* Smaller test since only POP is needed.
* Smaller test since only POP is needed.
* dos2unix
2023-10-20 13:43:14 -07:00
Michael Hansen
d62c8adf89
Merge branch '3_11-support-for-new-opcodes' of https://github.com/TiZCrocodile/pycdc
2023-08-26 10:58:37 -07:00
Michael Hansen
b1a8563126
Merge pull request #378 from LNSSPsd/master
...
Fix the pointer's behavior on getting buffer from `PycBuffer`
2023-08-26 10:52:26 -07:00
Ruphane
9711a4abe5
Fix the pointer's behavior on getting buffer
2023-08-25 18:00:26 -07:00
Michael Hansen
f5c1d4262b
Move comment closer to where it applies, plus some formatting consistency
2023-08-19 21:24:03 -07:00
Roman Avdeenko
916103179c
Fix LOAD_GLOBAL_A operand printing for versions prior to 3.11
2023-08-19 17:43:04 +03:00
MrDakik
da859f5a2b
Added support for opcodes: (in DESC)
...
`KW_NAMES`
`POP_JUMP_FORWARD_IF_FALSE`
`POP_JUMP_FORWARD_IF_TRUE`
`LOAD_GLOBAL`
2023-07-18 18:33:03 +03:00
Michael Hansen
bb54b27cd1
Move cmake_minimum_required to the top of CMakeLists, so it correctly affects everything else below it
2023-06-20 13:28:10 -07:00
Michael Hansen
753d42d94a
Simplify string object printing to reduce code duplication
2023-06-09 09:09:03 -07:00
Michael Hansen
4b4f9f8edb
Fix impossible condition in pycdas Code dump
2023-06-08 14:30:09 -07:00
Michael Hansen
32a0aec535
Use raw string literals to improve readability in OutputString
2023-06-06 11:20:32 -07:00
Michael Hansen
bf3599c87a
Move some output stream parameters forward.
...
This allows us to avoid removing parameter defaults for these functions.
2023-06-05 13:56:25 -07:00
Michael Hansen
46ea76c0e9
Clean up file handling in main()s, and remove a leak
2023-06-05 13:54:26 -07:00
Michael Hansen
8bb8386764
Fix some issues with formatted_print:
...
* Add a va_list version which can be correctly used by ivprintf (fixes pycdas output)
* Use a `const char*` format parameter to avoid the need for clang warning workarounds
* Make better use of return values.
2023-06-05 13:49:04 -07:00
Michael Hansen
482c32d84e
Merge commit 'c4c35fc5318b904d5141a7f3c4a70d80576c30da'
2023-06-05 11:18:20 -07:00
Michael Hansen
72c5f87793
Fix range of supported versions for marshalled files
2023-06-04 09:16:31 -07:00
Perceval Wajsbürt
c4c35fc531
Use C++ streams over C style IO
2023-06-02 01:12:59 +02:00
Michael Hansen
409f175827
Reduce code duplication for pre-3.11 binary ops, based on #348
2023-06-01 13:55:17 -07:00
Michael Hansen
90815b47ca
Squash merge of #348
...
(Plus some whitespace cleanup)
commit ca302777438a6ac0ff00b9dbc87d2cf9e816b807
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Thu Jun 1 14:55:26 2023 -0400
Test
commit 1764514e1dc4018abf050e2e2c3378b6ebaca2a2
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Thu Jun 1 14:46:49 2023 -0400
Semi-Support
commit 104fa62355a18a071dae2d09db00af3b2fd22b6c
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Thu Jun 1 14:46:30 2023 -0400
Semi-Support
commit 0809a71c725e3a92ece9348265f26f72fdb6664d
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Thu Jun 1 14:46:11 2023 -0400
Semi-Support
commit bdf1695a57d2ad9eb1505a92ff4fa46c6f5ea90f
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Thu Jun 1 00:06:34 2023 -0400
Updated Test
commit ea69a0b3be10568b70d02d744174e3bfc1d3546a
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Thu Jun 1 00:06:23 2023 -0400
Updated Test
commit ecde2146208ea7a533267ace7293a49ce7a132bb
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Thu Jun 1 00:06:12 2023 -0400
Updated Test
commit d5bbbe6224fc0aa8c5c3bc39b4f8845c8f941c7f
Author: TheHellTower <thehelltower@tuta.io >
Date: Wed May 31 23:59:46 2023 -0400
Feat: @zrax
Co-authored-by: Michael Hansen <zrax0111@gmail.com >
commit f8d2299d14a3a0f69b40486006d629ccc5c719df
Author: TheHellTower <thehelltower@tuta.io >
Date: Wed May 31 23:59:03 2023 -0400
Feat: @zrax
Co-authored-by: Michael Hansen <zrax0111@gmail.com >
commit 3fa8691f4c379dd10026227778ac60587fd07e68
Author: TheHellTower <thehelltower@tuta.io >
Date: Wed May 31 23:58:53 2023 -0400
Feat: @zrax
Co-authored-by: Michael Hansen <zrax0111@gmail.com >
commit 6af17f0cffee31bc03ed8151e82b1720119d6a8d
Author: TheHellTower <thehelltower@tuta.io >
Date: Wed May 31 23:58:45 2023 -0400
Feat: @zrax
Co-authored-by: Michael Hansen <zrax0111@gmail.com >
commit c7c76097fce1f45da0308b9f5e9cfffb5a323fd9
Author: TheHellTower <thehelltower@tuta.io >
Date: Wed May 31 16:55:20 2023 -0400
Remove `iostream`
commit 2edaec022f8cbcb36bffd7ec86b5f71b391fb372
Author: TheHellTower <thehelltower@tuta.io >
Date: Wed May 31 16:54:48 2023 -0400
Mistake
commit a36d4c5e62afe24691701f6d0b7c758b4113db91
Author: TheHellTower <thehelltower@tuta.io >
Date: Wed May 31 16:52:12 2023 -0400
Remove `iostream`
commit 1c3a5b02c95352a8e90247757df17d1563698fb6
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Wed May 31 16:43:30 2023 -0400
Should be a bit better
commit 11603f1bb244c4d60ec34b675e1cd9c10945abf5
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Wed May 31 04:07:47 2023 -0400
Update
commit 689b544fc1023ec60e4df257f3448064fdf84c2b
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Wed May 31 04:07:38 2023 -0400
Update
commit 20bc5b820fb2ef6fd9199546e11ac02d78e5b6da
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Wed May 31 04:07:24 2023 -0400
Update
commit c01e8251fac1577d25ab440ade4bfe2b42eb1860
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Wed May 31 04:05:28 2023 -0400
Format problem ?
commit f35c494dd0d943323ec899cd8b2a236d11de67fc
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Wed May 31 04:02:03 2023 -0400
Fix
commit 7f3265e4192e2b6eec81dc30a630691cead59694
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:57:01 2023 -0400
BINARY_OP | Simplified
commit 045a6041f7a5abb7b5cdeaa4882b2620462e1927
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:56:53 2023 -0400
BINARY_OP | Simplified
commit 0bfb76280e466e15c32ef42851d9981b9df57059
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:56:41 2023 -0400
BINARY_OP | Simplified
commit 31159d69e8f802d7955244b258795563018c3eda
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:50:19 2023 -0400
Fix Matching...
commit e4a978aeadebe9c574856c30928ec58da9e32639
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:50:06 2023 -0400
Fix Matching...
commit d7a1b25b8f85886fcdc0a7c10c885e7e9e011281
Author: TheHellTower <thehelltower@tuta.io >
Date: Mon May 29 00:41:43 2023 -0400
Add `BINARY_OP` support
commit 6527299a67f043eb2b63e13ae43c4e9f060456e2
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:40:32 2023 -0400
Add `BINARY_OP` test tokenized
commit c053cab7895f49a085a0797a98e28e87f4874d39
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:40:11 2023 -0400
Add `BINARY_OP` test
commit e32f006f90a4e450099edd7d2f0bdbb0f1bbc612
Author: TheHellTower <dontbeshybuddy@gmail.com >
Date: Mon May 29 00:39:53 2023 -0400
Add `BINARY_OP` test compiled
Closes #333
Closes #348
Co-authored-by: TheHellTower <dontbeshybuddy@gmail.com >
2023-06-01 13:21:23 -07:00
Michael Hansen
ee934a1e99
Show binary ops from Python 3.11 in disassembly
2023-05-30 14:45:22 -07:00
Michael Hansen
0710ea07f1
Fix missing includes, which fixes build on GCC 13+
2023-05-07 13:28:10 -07:00
Michael Hansen
c8156739f1
Merge pull request #344 from seashell11234455/master
...
Fix unicode string display bug
2023-04-27 08:51:58 -07:00
FeO3
006b3e4bbc
Fix unicode string display bug
2023-04-27 20:40:06 +08:00
Michael Hansen
2e76e56420
Fixup unrelated changes from PR
2023-02-28 15:49:12 -08:00
TheHellTower
4d81a16638
Add PUSH_NULL
, PRECALL_A
, CALL_A
support (#324)
...
* Add `PUSH_NULL`, `PRECALL_A`, `CALL_A` support
* feat: @zrax
Co-authored-by: Michael Hansen <zrax0111@gmail.com >
* Good suggested change to make the code shorter
* Add `PUSH_NULL`, `PRECALL`, `CALL` test tokenized
* Add `PUSH_NULL`, `PRECALL`, `CALL` test
* Add `PUSH_NULL`, `PRECALL`, `CALL` test compiled
* Delete push_null-precall-call.3.11.pyc
* Delete push_null-precall-call.py
* Delete push_null-precall-call.txt
* Update README.markdown
Blank commit to re-run the tests.
* Join all no-ops/"fake"-ops together
* Update ASTree.cpp
https://github.com/zrax/pycdc/pull/324#issuecomment-1449049283
* Add compiled test for #324
---------
Co-authored-by: Michael Hansen <zrax0111@gmail.com >
2023-02-28 15:48:33 -08:00
Michael Hansen
f4db6a7cf6
Update CodeQL configuration
2023-02-27 13:12:11 -08:00
Michael Hansen
e922c1c224
Merge pull request #325 from zrax/test_calls
...
Add unit test for basic function calls (py3)
2023-02-27 12:04:36 -08:00
Michael Hansen
9f747e188c
Add unit test for basic function calls (py3)
2023-02-27 11:59:01 -08:00
Michael Hansen
00d436f87d
Reduce code duplication between PycSet/PycTuple/PycList
2023-02-16 22:10:44 -08:00
Michael Hansen
1fcbf4cd4b
Keep PycSet objects marshalled from files in order too
2023-02-16 22:01:31 -08:00