]> git.proxmox.com Git - rustc.git/blob - compiler/rustc_target/src/abi/call/amdgpu.rs
New upstream version 1.48.0~beta.8+dfsg1
[rustc.git] / compiler / rustc_target / src / abi / call / amdgpu.rs
1 use crate::abi::call::{ArgAbi, FnAbi};
2 use crate::abi::{HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods};
3
4 fn classify_ret<'a, Ty, C>(_cx: &C, ret: &mut ArgAbi<'a, Ty>)
5 where
6 Ty: TyAndLayoutMethods<'a, C> + Copy,
7 C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
8 {
9 ret.extend_integer_width_to(32);
10 }
11
12 fn classify_arg<'a, Ty, C>(_cx: &C, arg: &mut ArgAbi<'a, Ty>)
13 where
14 Ty: TyAndLayoutMethods<'a, C> + Copy,
15 C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
16 {
17 arg.extend_integer_width_to(32);
18 }
19
20 pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
21 where
22 Ty: TyAndLayoutMethods<'a, C> + Copy,
23 C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout,
24 {
25 if !fn_abi.ret.is_ignore() {
26 classify_ret(cx, &mut fn_abi.ret);
27 }
28
29 for arg in &mut fn_abi.args {
30 if arg.is_ignore() {
31 continue;
32 }
33 classify_arg(cx, arg);
34 }
35 }