Comment out matches() operand flags logic
Also space fix Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
parent
acf256f4db
commit
1de9500c89
1 changed files with 82 additions and 59 deletions
25
assemble.c
25
assemble.c
|
@ -2100,7 +2100,30 @@ static enum match_result matches(const struct itemplate *itemp,
|
|||
}
|
||||
|
||||
/*
|
||||
* Check that the operand flags all match up
|
||||
* Check that the operand flags all match up,
|
||||
* it's a bit tricky so lets be verbose:
|
||||
*
|
||||
* 1) Find out the size of operand. If instruction
|
||||
* doesn't have one specified -- we're trying to
|
||||
* guess it either from template (IF_S* flag) or
|
||||
* from code bits.
|
||||
*
|
||||
* 2) If template operand (i) has SAME_AS flag [used for registers only]
|
||||
* (ie the same operand as was specified somewhere in template, and
|
||||
* this referred operand index is being achieved via ~SAME_AS)
|
||||
* we are to be sure that both registers (in template and instruction)
|
||||
* do exactly match.
|
||||
*
|
||||
* 3) If template operand do not match the instruction OR
|
||||
* template has an operand size specified AND this size differ
|
||||
* from which instruction has (perhaps we got it from code bits)
|
||||
* we are:
|
||||
* a) Check that only size of instruction and operand is differ
|
||||
* other characteristics do match
|
||||
* b) Perhaps it's a register specified in instruction so
|
||||
* for such a case we just mark that operand as "size
|
||||
* missing" and this will turn on fuzzy operand size
|
||||
* logic facility (handled by a caller)
|
||||
*/
|
||||
for (i = 0; i < itemp->operands; i++) {
|
||||
opflags_t type = instruction->oprs[i].type;
|
||||
|
|
Loading…
Reference in a new issue