-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
i386, i486 and Pentium support #5
base: master
Are you sure you want to change the base?
Conversation
…set the WP bit in CR0.
Also found a little bug with x86_32 using REX prefixes, which obviously don't exist on x86 at all (they're INC/DEC instructions on x86) so fixed those as well. |
Added support for used prefixes.
- Full used and detected prefixes storage in the search engine.
Implemented the filter on detecting of prefixes.
- Fixed detecting of prefixes.
Implemented prefix groups not to be used if specified to exclude.
- Implemented proper parsing of used and detected prefixes on the command line.
Improved the search engine a bit and restored prefixes in 32-bit ELFs. I've also added command line parameters to (using a supplied bitmask number) make it filter out recognised and used(skipped if not used) prefixes. So you can select what opcode groups are CPU-recognised and filter groups from the results for speed (things you're not interested in). |
- Fixed detect_prefixes and used_prefixes variable names.
- Made the prefix group LUT depend on the prefixes specified.
Moved the group LUT into the search engine class as a variable and a class. |
I've added Pentium, i486 and i386 CPU support to the source code.
I've made the 32-bit CR4 extensions and CR0 extensions to not fault on CPUs not supporting them (or the CR4 register).
Also, Pre-PSE CPUs will implement page tables as well (always mapped directly after the executable in physical RAM), at the cost of 4KB per mapped 4MB block.
And of course lowered the used 32-bit instruction set from i686 to i386 for 32-bit 80386/80486/Pentium compatibility.