Skip to content

Commit cabeeeb

Browse files
Rollup merge of rust-lang#130432 - azhogin:azhogin/regparm, r=workingjubilee,pnkfelix
rust_for_linux: -Zregparm=<N> commandline flag for X86 (rust-lang#116972) Command line flag `-Zregparm=<N>` for X86 (32-bit) for rust-for-linux: rust-lang#116972 Implemented in the similar way as fastcall/vectorcall support (args are marked InReg if fit).
2 parents a40da5b + 4c297be commit cabeeeb

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/builder.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use rustc_middle::ty::{Instance, ParamEnv, Ty, TyCtxt};
3030
use rustc_span::Span;
3131
use rustc_span::def_id::DefId;
3232
use rustc_target::abi::call::FnAbi;
33-
use rustc_target::spec::{HasTargetSpec, HasWasmCAbiOpt, Target, WasmCAbi};
33+
use rustc_target::spec::{HasTargetSpec, HasWasmCAbiOpt, HasX86AbiOpt, Target, WasmCAbi, X86Abi};
3434

3535
use crate::common::{SignType, TypeReflection, type_is_pointer};
3636
use crate::context::CodegenCx;
@@ -2347,6 +2347,12 @@ impl<'tcx> HasWasmCAbiOpt for Builder<'_, '_, 'tcx> {
23472347
}
23482348
}
23492349

2350+
impl<'tcx> HasX86AbiOpt for Builder<'_, '_, 'tcx> {
2351+
fn x86_abi_opt(&self) -> X86Abi {
2352+
self.cx.x86_abi_opt()
2353+
}
2354+
}
2355+
23502356
pub trait ToGccComp {
23512357
fn to_gcc_comparison(&self) -> ComparisonOp;
23522358
}

src/context.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ use rustc_session::Session;
1919
use rustc_span::source_map::respan;
2020
use rustc_span::{DUMMY_SP, Span};
2121
use rustc_target::abi::{HasDataLayout, PointeeInfo, Size, TargetDataLayout, VariantIdx};
22-
use rustc_target::spec::{HasTargetSpec, HasWasmCAbiOpt, Target, TlsModel, WasmCAbi};
22+
use rustc_target::spec::{
23+
HasTargetSpec, HasWasmCAbiOpt, HasX86AbiOpt, Target, TlsModel, WasmCAbi, X86Abi,
24+
};
2325

2426
use crate::callee::get_fn;
2527
use crate::common::SignType;
@@ -538,6 +540,12 @@ impl<'gcc, 'tcx> HasWasmCAbiOpt for CodegenCx<'gcc, 'tcx> {
538540
}
539541
}
540542

543+
impl<'gcc, 'tcx> HasX86AbiOpt for CodegenCx<'gcc, 'tcx> {
544+
fn x86_abi_opt(&self) -> X86Abi {
545+
X86Abi { regparm: self.tcx.sess.opts.unstable_opts.regparm }
546+
}
547+
}
548+
541549
impl<'gcc, 'tcx> LayoutOfHelpers<'tcx> for CodegenCx<'gcc, 'tcx> {
542550
#[inline]
543551
fn handle_layout_err(&self, err: LayoutError<'tcx>, span: Span, ty: Ty<'tcx>) -> ! {

0 commit comments

Comments
 (0)