Skip to content
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

Missing Bit Manipulation Instruction Sets: ABM, BMI1, BMI2, and TBM #21

Closed
xelxebar opened this issue Feb 13, 2022 · 4 comments
Closed

Comments

@xelxebar
Copy link

Just recently having learned about the various Bit Manipulation Instruction Sets, I happened to notice their conspicuous lack on the x86reference. Is this intentional for some reason, or would it be worth a PR?

@BarebitOpenSource
Copy link
Contributor

POPCNT is already there. LZCNT should be added.

BMI1, BMI2, and TBM are VEX-ecoded instructions and VEX encoding is yet to be implemented.

@BarebitOpenSource
Copy link
Contributor

TZCNT — Count the Number of Trailing Zero Bits

F3 0F BC /r       TZCNT r16, r/m16
F3 0F BC /r       TZCNT r32, r/m32
F3 REX.W 0F BC /r TZCNT r64, r/m64

TZCNT Gv, Ev

CPU feature: BMI1

@BarebitOpenSource
Copy link
Contributor

Added LZCNT that is not part of BMI1.

@BarebitOpenSource
Copy link
Contributor

Added TZCNT. It's part of BMI1 but the only non-VEX instruction. The rest of the BMI instructions will be added along with all the other VEX instructons.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants