On 02/28/2014 12:33 AM, Claudio Fontana wrote:
> ping?
> 
> Richard, do you prefer to spin your polishing from last year instead?

I do prefer my patch set over this.

>> +    INSN_IMM       = 0x10000000, /* 3.4.1, 3.4.4  - add/sub and logical */
>> +    INSN_SHIFT     = 0x1ac02000, /* 3.5.8 - Data proc (2 source) */
...
>> +enum a64_insn_arith {
>> +    ARITH_ADD  = 0x01 << 24,
>> +    ARITH_ADDS = 0x21 << 24,
>> +    ARITH_SUB  = 0x41 << 24,
>> +    ARITH_SUBS = 0x61 << 24,
>> +
>> +    ARITH_AND  = 0x00 << 24,
>> +    ARITH_OR   = 0x20 << 24,
>> +    ARITH_XOR  = 0x40 << 24,
>> +    ARITH_ANDS = 0x60 << 24,
>>  };
...
>> +enum a64_insn_imm_arith { /* 3.4.1 */
>> +    IMM_ADD  = 0x01 << 24,
>> +    IMM_ADDS = 0x21 << 24,
>> +    IMM_SUB  = 0x41 << 24,
>> +    IMM_SUBS = 0x61 << 24
...
>> +enum a64_insn_imm_log { /* 3.4.4 */
>> +    IMM_AND  = 0x02 << 24,
>> +    IMM_OR   = 0x22 << 24,
>> +    IMM_XOR  = 0x42 << 24,
>> +    IMM_ANDS = 0x62 << 24,
>> +};

In particular, I'm not keen on these opcode / subopcode splits. They just make
the source more confusing to read, and in my experience aren't helpful in
practice. It's just as easy to put them together into e.g. a single "ADDI" 
symbol.


r~

Reply via email to