[PATCH, AArch64] Implement LSE feature

pinskia@gmail.com pinskia@gmail.com
Wed Sep 3 13:52:00 GMT 2014



> On Sep 3, 2014, at 6:04 AM, Jiong Wang <jiong.wang@arm.com> wrote:
> 
> This patch implements support for AArch64 LSE.
> 
> OK?
> 
> include/opcode/
>  * aarch64.h (AARCH64_FEATURE_LSE): New feature added.
>  (aarch64_opnd): Add AARCH64_OPND_PAIRREG.
>  (aarch64_insn_class): Add lse_atomic.
>  (F_LSE_SZ): New field added.
>  (opcode_has_special_coder): Recognize F_LSE_SZ.
> 
> opcode/
>  * aarch64-tbl.h (QL_R4NIL): New qualifiers.
>  (aarch64_feature_lse): New feature added.
>  (LSE): New Added.
>  (aarch64_opcode_table): New LSE instructions added.
>  Improve descriptions for ldarb/ldarh/ldar.
>  (aarch64_opcode_table): Describe PAIRREG.
>  * aarch64-opc.h (aarch64_field_kind): Add FLD_lse_sz.
>  * aarch64-opc.c (fields): Add entry for F_LSE_SZ.
>  (aarch64_print_operand): Recognize PAIRREG.
>  (operand_general_constraint_met_p): Check reg pair
>  constraints for CASP instructions.
>  * aarch64-dis.c (aarch64_ext_regno_pair): New extractor for
>  paired reg.
>  (do_special_decoding): Recognize F_LSE_SZ.
>  * aarch64-asm.c (do_special_encoding): Recognize F_LSE_SZ.
> 
> gas/
>  * config/tc-aarch64.c (parse_operands): Recognize PAIRREG.
>  (aarch64_features): Add entry for lse extension.
> 
> gas/testsuite/
>  * gas/aarch64/lse-atomic.d: New.
>  * gas/aarch64/lse-atomic.s: Ditto.
>  * gas/aarch64/illegal-lse.d: Ditto.
>  * gas/aarch64/illegal-lse.l: Ditto.
>  * gas/aarch64/illegal-lse.s: Ditto.
>  * gas/aarch64/diagnostic.s: Check processor feature detect
>  for lse instruction.
>  * gas/aarch64/diagnostic.l: Ditto.
> <lse.patch>


Bikeshedding: atomic seems like a better name for the set of instructions rather lse.  With a quick look it is hard to tell what lse even stands for. Atomic on the other hand it is easier to figure it out. 

I also have not looked to see how this compares to our(Cavium's) implementation. 

Thanks,
Andrew



More information about the Binutils mailing list