mirror of
https://github.com/capstone-engine/capstone
synced 2026-08-11 16:26:07 -04:00
* Add Sparc inc fils, delete old files and update AS with Sparc config. * AS: Refuse to run differ if an old file is missing. * AS: Refer to the RefactorGuide.md * Add first translated Sparc files. * Fixup SparcMCTargetDesc.h * Fixup SparcDisassembler.h * Fixup instruction printer. * Fixup SparcInstPrinter * Basic functions of Capstone module * Fix SP sparc namespace prefix. * Fix build script and linking * Fix disassembler not actually reading bytes. * Match \!encoding in llvm-mc output (Sparc has this). * Add Sparc LE and and make v9 a feature to enable. * Update test files for Sparc * Fix tests. * Add assembly tests * AS: Add settings to use assembly tests. * Test fixes * Fix typos * Add reg and imm details. * Add mem details and instruction formats. * Handle condition codes. * Formatting * Add hints. * Add membar and asi tags * Update Python bindings * Add asi and membar to cstest * Restructure test file * Capstone fix for llvm-project/#139284. * Fix branch detail tests * Handle faulty mem operand defintions. * Add membar and asi tests * Add one more branch instruction test. * Add missing call alias * Fix tests. Updated after fixing branch disponents. Issues with the generated assembly tests. The assembly tests don't check the feature flags enabled. And hence V9 tests are added to the none V9 test file. * Fix alias lookup with , in the asm_text * Fix common detail tests. * Fix issue.yaml * Add Sparc changelog * Add changelog for Sparc to v6 guide * Fix incorrect translated array size check. * Reading the ISA and thinking would help... This is not how alignment is calculated -.- * Fix call targets * Remove 'real' BA instruction (which is only an alias). * Add missing property getters. * Add missing format details * Set correct detail struct * Support access detail testing for Sparc. * Add hard-coded special registers tbr, wim, psr * Add alias tests for call and ba. * Fix copy paste mistake. * Add note about big/little endian into guide. * Add implied flag for SparcV9 * Format * Store CC field consistently in an extra field. The CC field used was sometimes stored as register, sometimes as not at all. Now it is consistently stored in a separated field. * Add an invalid ASI tag. * Fix LDSTUB/A memory access and incorrect operand details. * Handle condition codes more elegantly. Also fixes bugs with wrong cc fields, or missing fields. * Add separation ; character for assembly tests. * Apply fix from llvm-project/#143232 * Use enum types for memory operands * Update Pythyon constants |
||
|---|---|---|
| .. | ||
| capstone | ||
| cstest_py | ||
| prebuilt | ||
| tests | ||
| .gitignore | ||
| BUILDING.md | ||
| LICENSE.TXT | ||
| MANIFEST.in | ||
| pyproject.toml | ||
| README.txt | ||
| setup.py | ||
To install Capstone, you should run `pip install capstone`. If you would like to build and install Capstone with just the source distribution, just run `python -m pip install .`, considering you are in the folder with setup.py in it. In order to use this source distribution, you will need an environment that can compile C code. On Linux, this is usually easy, but on Windows, this involves installing Visual Studio and using the "Developer Command Prompt" to perform the installation. See BUILDING.md for more information. By default, attempting to install the python bindings will trigger a build of the capstone native core. If this is undesirable for whatever reason, for instance, you already have a globally installed copy of libcapstone, you may inhibit the build by setting the environment variable LIBCAPSTONE_PATH. The exact value is not checked, just setting it will inhibit the build. During execution, this variable may be set to the path of a directory containing a specific version of libcapstone you would like to use. If you don't want to build your own copy of Capstone, you can use a precompiled binary distribution from PyPI. Saying `pip install capstone` should automatically obtain an appropriate copy for your system. If it does not, please open an issue at https://github.com/capstone-engine/capstone. -------------------------------------------------------------------------------- Capstone is a disassembly framework with the target of becoming the ultimate disasm engine for binary analysis and reversing in the security community. Created by Nguyen Anh Quynh, then developed and maintained by a small community, Capstone offers some unparalleled features: - Support multiple hardware architectures: ARM, AARCH64 (ARMv8), Mips, PPC, Sparc, SystemZ, XCore and X86 (including X86_64). - Having clean/simple/lightweight/intuitive architecture-neutral API. - Provide details on disassembled instruction (called “decomposer” by others). - Provide semantics of the disassembled instruction, such as list of implicit registers read & written. - Implemented in pure C language, with lightweight wrappers for C++, C#, Go, Java, NodeJS, Ocaml, Python, Ruby & Vala ready (available in main code, or provided externally by the community). - Native support for all popular platforms: Windows, Mac OSX, iOS, Android, Linux, *BSD, Solaris, etc. - Thread-safe by design. - Special support for embedding into firmware or OS kernel. - High performance & suitable for malware analysis (capable of handling various X86 malware tricks). - Distributed under the open source BSD license. Further information is available at http://www.capstone-engine.org [License] This project is released under the BSD license. If you redistribute the binary or source code of Capstone, please attach file LICENSE.TXT with your products.