[llvm] r288279 - [AArch64] Refactor LSE support as feature separate from V8.1a support.
Joel Jones via llvm-commits
llvm-commits at lists.llvm.org
Tue May 2 07:08:58 PDT 2017
Thanks for the catch. I once spent a lot of time cleaning up an assembler that didn’t have a history of being picky enough about which particular instructions a specific part supported, until a customer got run-time errors.
Joel
> On May 1, 2017, at 6:01 PM, Ahmed Bougacha <ahmed.bougacha at gmail.com> wrote:
>
> On Wed, Nov 30, 2016 at 2:25 PM, Joel Jones via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>> Author: joel_k_jones
>> Date: Wed Nov 30 16:25:24 2016
>> New Revision: 288279
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=288279&view=rev
>> Log:
>> [AArch64] Refactor LSE support as feature separate from V8.1a support.
>>
>> Summary:
>> This is preparation for ThunderX processors that have Large
>> System Extension (LSE) atomic instructions, but not the
>> other instructions introduced by V8.1a.
>> This will mimic changes to GCC as described here:
>> https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00388.html
>>
>> LSE instructions are: LD/ST<op>, CAS*, SWP
>>
>> Reviewers: t.p.northover, echristo, jmolloy, rengolin
>>
>> Subscribers: aemerson, mehdi_amini
>>
>> Differential Revision: https://reviews.llvm.org/D26621
>>
>> Added:
>> llvm/trunk/test/MC/AArch64/arm64v8.1-diagno-predicate.s
>> Modified:
>> llvm/trunk/include/llvm/Support/AArch64TargetParser.def
>> llvm/trunk/include/llvm/Support/TargetParser.h
>> llvm/trunk/lib/Target/AArch64/AArch64.td
>> llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td
>> llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
>> llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h
>> llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
>> llvm/trunk/test/MC/AArch64/directive-arch-negative.s
>> llvm/trunk/test/MC/AArch64/directive-cpu.s
>>
>> Modified: llvm/trunk/include/llvm/Support/AArch64TargetParser.def
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/AArch64TargetParser.def?rev=288279&r1=288278&r2=288279&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/Support/AArch64TargetParser.def (original)
>> +++ llvm/trunk/include/llvm/Support/AArch64TargetParser.def Wed Nov 30 16:25:24 2016
>> @@ -21,15 +21,15 @@ AARCH64_ARCH("invalid", AK_INVALID, null
>> AARCH64_ARCH("armv8-a", AK_ARMV8A, "8-A", "v8", ARMBuildAttrs::CPUArch::v8_A,
>> FK_CRYPTO_NEON_FP_ARMV8,
>> (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
>> - AArch64::AEK_SIMD))
>> + AArch64::AEK_SIMD | AArch64::AEK_LSE))
>
> FYI: I noticed this bit and don't think it's correct (v8-A doesn't
> have LSE); fixed in r301890. The default extensions are hardly used
> though, so no big deal.
>
> Sorry for the necromancy,
> -Ahmed
More information about the llvm-commits
mailing list