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

AArch64 decoder: Add all condition code-touching instructions #4849

Open
derekbruening opened this issue Apr 14, 2021 · 2 comments
Open

AArch64 decoder: Add all condition code-touching instructions #4849

derekbruening opened this issue Apr 14, 2021 · 2 comments

Comments

@derekbruening
Copy link
Contributor

Splitting sub-pieces off from the master issue #2626 on finishing the AArch64 decoder. This piece covers ensuring that all instructions that either read or write the condition codes (NZCVQGE) are fully decoded and encoded. Xref the instruction lists here: #2626 (comment). Xref how missing cases here caused hard-to-debug problems in #4687 and the workaround we put in place which assumes all unknown opcodes both read and write the codes, which adds overhead. We would like to remove the workaround once we have confidence that all the cases are handled.

MDevereau added a commit that referenced this issue Apr 27, 2021
Ordering dis-a64.txt alphabetically by instruction name will make it
much easier to navigate and detect missing or erroneous tests.

Issue: #2626, #4847, #4848, #4849
AssadHashmi pushed a commit that referenced this issue Apr 27, 2021
Ordering dis-a64.txt alphabetically by instruction name will make it
much easier to navigate and detect missing or erroneous tests.

Issue: #2626, #4847, #4848, #4849
@AssadHashmi
Copy link
Contributor

Missing opcodes that touch condition codes: 9 of 30 as at 17-06-21.

@abhinav92003
Copy link
Contributor

abhinav92003 commented Jun 21, 2021

Hit this issue while working on PR #4917. Cannot use the undefined opcode to trigger a fault to verify proper restoration of aflags native val on fault for AArch64. This is because aflags are restored automatically before the undefined opcode that is assumed to read aflags.

AssadHashmi added a commit that referenced this issue Jun 25, 2021
Adds the following instructions to the codec:

FCSEL <Hd>, <Hn>, <Hm>, <cond>
FCSEL <Sd>, <Sn>, <Sm>, <cond>
FCSEL <Dd>, <Dn>, <Dm>, <cond>
FMAXV <V><d>, <Vn>.<T>
FMINV <V><d>, <Vn>.<T>
FCMP <Hn>, <Hm>
FCMP <Hn>, #0.0
FCMP <Sn>, <Sm>
FCMP <Sn>, #0.0
FCMP <Dn>, <Dm>
FCMP <Dn>, #0.0
FCCMP <Hn>, <Hm>, #<nzcv>, <cond>
FCCMP <Sn>, <Sm>, #<nzcv>, <cond>
FCCMP <Dn>, <Dm>, #<nzcv>, <cond>
FCCMPE <Hn>, <Hm>, #<nzcv>, <cond>
FCCMPE <Sn>, <Sm>, #<nzcv>, <cond>
FCCMPE <Dn>, <Dm>, #<nzcv>, <cond>

Issue: #2626, #4849
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

4 participants