Add gpu-kernel calling convention
The amdgpu-kernel calling convention was reverted in commit
f6b21e90d1
due to inactivity in the amdgpu
target.
Introduce a `gpu-kernel` calling convention that translates to
`ptx_kernel` or `amdgpu_kernel`, depending on the target that rust
compiles for.
This commit is contained in:
parent
bf6f8a4d32
commit
e7e5202978
29 changed files with 435 additions and 175 deletions
|
@ -547,6 +547,8 @@ pub enum Conv {
|
|||
|
||||
PtxKernel,
|
||||
|
||||
GpuKernel,
|
||||
|
||||
X86Fastcall,
|
||||
X86Intr,
|
||||
X86Stdcall,
|
||||
|
@ -866,6 +868,7 @@ impl FromStr for Conv {
|
|||
"X86VectorCall" => Ok(Conv::X86VectorCall),
|
||||
"X86_64SysV" => Ok(Conv::X86_64SysV),
|
||||
"X86_64Win64" => Ok(Conv::X86_64Win64),
|
||||
"GpuKernel" => Ok(Conv::GpuKernel),
|
||||
"AvrInterrupt" => Ok(Conv::AvrInterrupt),
|
||||
"AvrNonBlockingInterrupt" => Ok(Conv::AvrNonBlockingInterrupt),
|
||||
"RiscvInterrupt(machine)" => {
|
||||
|
|
|
@ -113,6 +113,7 @@ impl ToJson for crate::abi::call::Conv {
|
|||
Self::X86VectorCall => "X86VectorCall",
|
||||
Self::X86_64SysV => "X86_64SysV",
|
||||
Self::X86_64Win64 => "X86_64Win64",
|
||||
Self::GpuKernel => "GpuKernel",
|
||||
Self::AvrInterrupt => "AvrInterrupt",
|
||||
Self::AvrNonBlockingInterrupt => "AvrNonBlockingInterrupt",
|
||||
Self::RiscvInterrupt { kind } => {
|
||||
|
|
|
@ -2854,6 +2854,7 @@ impl Target {
|
|||
}
|
||||
Win64 { .. } | SysV64 { .. } => self.arch == "x86_64",
|
||||
PtxKernel => self.arch == "nvptx64",
|
||||
GpuKernel => ["amdgpu", "nvptx64"].contains(&&self.arch[..]),
|
||||
Msp430Interrupt => self.arch == "msp430",
|
||||
RiscvInterruptM | RiscvInterruptS => ["riscv32", "riscv64"].contains(&&self.arch[..]),
|
||||
AvrInterrupt | AvrNonBlockingInterrupt => self.arch == "avr",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue