]> git.proxmox.com Git - rustc.git/blob - src/librustc_target/abi/call/hexagon.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / librustc_target / abi / call / hexagon.rs
1 use crate::abi::call::{FnAbi, ArgAbi};
2
3 fn classify_ret<Ty>(ret: &mut ArgAbi<'_, Ty>) {
4 if ret.layout.is_aggregate() && ret.layout.size.bits() > 64 {
5 ret.make_indirect();
6 } else {
7 ret.extend_integer_width_to(32);
8 }
9 }
10
11 fn classify_arg<Ty>(arg: &mut ArgAbi<'_, Ty>) {
12 if arg.layout.is_aggregate() && arg.layout.size.bits() > 64 {
13 arg.make_indirect();
14 } else {
15 arg.extend_integer_width_to(32);
16 }
17 }
18
19 pub fn compute_abi_info<Ty>(fn_abi: &mut FnAbi<'_,Ty>) {
20 if !fn_abi.ret.is_ignore() {
21 classify_ret(&mut fn_abi.ret);
22 }
23
24 for arg in &mut fn_abi.args {
25 if arg.is_ignore() {
26 continue;
27 }
28 classify_arg(arg);
29 }
30 }