1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/lib/CodeGen/GlobalISel
Tim Northover 5661b7eb80 IR+AArch64: add a "swiftasync" argument attribute.
This extends any frame record created in the function to include that
parameter, passed in X22.

The new record looks like [X22, FP, LR] in memory, and FP is stored with 0b0001
in bits 63:60 (CodeGen assumes they are 0b0000 in normal operation). The effect
of this is that tools walking the stack should expect to see one of three
values there:

  * 0b0000 => a normal, non-extended record with just [FP, LR]
  * 0b0001 => the extended record [X22, FP, LR]
  * 0b1111 => kernel space, and a non-extended record.

All other values are currently reserved.

If compiling for arm64e this context pointer is address-discriminated with the
discriminator 0xc31a and the DB (process-specific) key.

There is also an "i8** @llvm.swift.async.context.addr()" intrinsic providing
front-ends access to this slot (and forcing its creation initialized to nullptr
if necessary).
2021-05-14 11:43:58 +01:00
..
CallLowering.cpp IR+AArch64: add a "swiftasync" argument attribute. 2021-05-14 11:43:58 +01:00
CMakeLists.txt
Combiner.cpp
CombinerHelper.cpp [GlobalISel] Don't form zero/sign extending loads for atomics. 2021-05-07 16:41:48 -07:00
CSEInfo.cpp [Support] Don't include VirtualFileSystem.h in CommandLine.h 2021-04-21 10:19:01 -04:00
CSEMIRBuilder.cpp GlobalISel: Avoid unnecessary truncation to i64 2021-03-21 10:07:41 -04:00
GISelChangeObserver.cpp
GISelKnownBits.cpp [KnownBits] Rename KnownBits::computeForMul to KnownBits::mul. NFCI. 2021-04-06 10:11:41 +01:00
GlobalISel.cpp
InlineAsmLowering.cpp
InstructionSelect.cpp [AArch64][GlobalISel] Enable use of the optsize predicate in the selector. 2021-03-02 12:55:51 -08:00
InstructionSelector.cpp [GlobalISel] Add missing operand update when copy is required 2021-01-20 10:32:52 +01:00
IRTranslator.cpp Support unwinding from inline assembly 2021-05-13 19:13:03 +01:00
LegalityPredicates.cpp
LegalizeMutations.cpp
Legalizer.cpp
LegalizerHelper.cpp Silence MSVC signed/unsigned comparison warning. NFCI. 2021-04-20 17:20:13 +01:00
LegalizerInfo.cpp [GlobalISel][Legalizer] Bump up a smallvector size that was found to be too small. NFC. 2021-04-29 14:41:34 -07:00
Localizer.cpp [CodeGen] Use range-based for loops (NFC) 2021-02-20 21:46:02 -08:00
LostDebugLocObserver.cpp
MachineIRBuilder.cpp [GlobalISel] Fix buildZExtInReg creating new register. 2021-05-05 08:19:52 -07:00
RegBankSelect.cpp [GlobalISel] Fix crash in RBS with a non-generic IMPLICIT_DEF. 2021-03-24 23:08:51 -07:00
RegisterBank.cpp [GlobalISel] Use ListSeparator (NFC) 2021-02-04 21:18:04 -08:00
RegisterBankInfo.cpp [CodeGen] Use llvm::append_range (NFC) 2021-01-21 19:59:46 -08:00
Utils.cpp [GlobalISel]: Add a getConstantIntVRegVal utility 2021-04-27 10:52:07 +02:00