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
[MC] Refine the definition of NOP instructions in TableGen files #483
Comments
@atrosinenko Some of this encoding space will be taken by stack push / pop instructions in #453 |
I confirm that after redesign The type | OpNoOp
| OpSpAdd (in1: in_reg) (ofs: imm_in)
| OpSpSub (in1: in_reg) (ofs: imm_in) The matching between |
As far as I understand, the spec on binary encoding of the instructions mentions 24 variants of NOP (6 source operand kinds x 4 destination operand kinds). On the assembly side, the new syntax only defines three instructions: @sayon @hedgar2017 The three assembly mnemonics can be mapped to |
|
@atrosinenko I doubt @sayon @hedgar2017 could answer to your question about "what should be in tablegen files". If the spec is unclear, maybe you can reformulate your question in terms of assembler behavior? |
From the user point of view
The question is: do we want to understand non-canonical use of NOP? For example if someone used the spec to implement their own code emission and we want to disassemble it for debug purpose (via LLDB, objdump, etc.). For example, Another (easier to implement) option could be replacing the line
with
assuming all operand fields must be zeroed for |
The spec describes NOP encoding mostly similar to arithmetic instructions, except for no modifiers:
that is, 6 variants of source operands, 4 variants of destination operands.
The question is how many instructions should be defined in TableGen files:
nop
,incsp
,decsp
The text was updated successfully, but these errors were encountered: