Skip to content

Commit 93896c7

Browse files
jiegecMingcongBai
authored andcommitted
Add MIPS definitions to vendored libffi-sys
1 parent 6dfb63c commit 93896c7

File tree

3 files changed

+54
-1
lines changed

3 files changed

+54
-1
lines changed

vendor/libffi-sys-2.3.0/.cargo-checksum.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

vendor/libffi-sys-2.3.0/src/arch.rs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,3 +363,49 @@ mod loongarch64 {
363363

364364
#[cfg(target_arch = "loongarch64")]
365365
pub use loongarch64::*;
366+
367+
/// From libffi:src/mips/ffitarget.h
368+
/// See: <https://github.com/libffi/libffi/blob/4cb776bc8075332d2f3e59f51785d621fcda48f6/src/mips/ffitarget.h>
369+
mod mips {
370+
mod common {
371+
use crate::ffi_abi;
372+
pub const ffi_abi_FFI_FIRST_ABI: ffi_abi = 0;
373+
pub const ffi_abi_FFI_O32: ffi_abi = 1;
374+
pub const ffi_abi_FFI_N32: ffi_abi = 2;
375+
pub const ffi_abi_FFI_N64: ffi_abi = 3;
376+
pub const ffi_abi_FFI_O32_SOFT_FLOAT: ffi_abi = 4;
377+
pub const ffi_abi_FFI_N32_SOFT_FLOAT: ffi_abi = 5;
378+
pub const ffi_abi_FFI_N64_SOFT_FLOAT: ffi_abi = 6;
379+
pub const ffi_abi_FFI_LAST_ABI: ffi_abi = 7;
380+
381+
pub const FFI_CLOSURES: u32 = 1;
382+
pub const FFI_GO_CLOSURES: u32 = 1;
383+
pub const FFI_NATIVE_RAW_ABI: u32 = 0;
384+
}
385+
386+
pub mod mips {
387+
use crate::ffi_abi;
388+
389+
pub use super::common::*;
390+
391+
pub const ffi_abi_FFI_DEFAULT_ABI: ffi_abi = ffi_abi_FFI_O32;
392+
393+
pub const FFI_TRAMPOLINE_SIZE: usize = 20;
394+
}
395+
396+
pub mod mips64 {
397+
use crate::ffi_abi;
398+
399+
pub use super::common::*;
400+
401+
pub const ffi_abi_FFI_DEFAULT_ABI: ffi_abi = ffi_abi_FFI_N64;
402+
403+
pub const FFI_TRAMPOLINE_SIZE: usize = 56;
404+
}
405+
}
406+
407+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
408+
pub use mips::mips::*;
409+
410+
#[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
411+
pub use mips::mips64::*;

vendor/libffi-sys-2.3.0/src/lib.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ pub struct ffi_cif {
137137
pub loongarch_nfixedargs: c_uint,
138138
#[cfg(all(target_arch = "loongarch64"))]
139139
pub loongarch_unused: c_uint,
140+
#[cfg(any(
141+
target_arch = "mips",
142+
target_arch = "mips32r6",
143+
target_arch = "mips64",
144+
target_arch = "mips64r6"
145+
))]
146+
pub mips_nfixedargs: c_uint,
140147
}
141148

142149
impl Default for ffi_cif {

0 commit comments

Comments
 (0)