openbsd: incoporate remarks
- consolidate target_record_sp_limit and target_get_sp_limit functions for aarch64, powerpc, arm-ios and openbsd as there are all without segmented stacks (no need to duplicate functions). - rename __load_self function to rust_load_self - use a mutex inner load_self() as underline implementation is not thread-safe
This commit is contained in:
parent
3096784a3b
commit
568a451a90
3 changed files with 27 additions and 40 deletions
|
@ -227,25 +227,15 @@ pub unsafe fn record_sp_limit(limit: uint) {
|
|||
}
|
||||
|
||||
// aarch64 - FIXME(AARCH64): missing...
|
||||
#[cfg(target_arch = "aarch64")]
|
||||
unsafe fn target_record_sp_limit(_: uint) {
|
||||
}
|
||||
|
||||
// powerpc - FIXME(POWERPC): missing...
|
||||
#[cfg(target_arch = "powerpc")]
|
||||
// arm-ios - iOS segmented stack is disabled for now, see related notes
|
||||
// openbsd - segmented stack is disabled
|
||||
#[cfg(any(target_arch = "aarch64",
|
||||
target_arch = "powerpc",
|
||||
all(target_arch = "arm", target_os = "ios"),
|
||||
target_os = "openbsd"))]
|
||||
unsafe fn target_record_sp_limit(_: uint) {
|
||||
}
|
||||
|
||||
|
||||
// iOS segmented stack is disabled for now, see related notes
|
||||
#[cfg(all(target_arch = "arm", target_os = "ios"))] #[inline(always)]
|
||||
unsafe fn target_record_sp_limit(_: uint) {
|
||||
}
|
||||
|
||||
#[cfg(target_os = "openbsd")] #[inline(always)]
|
||||
unsafe fn target_record_sp_limit(_: uint) {
|
||||
// segmented stack is disabled
|
||||
}
|
||||
}
|
||||
|
||||
/// The counterpart of the function above, this function will fetch the current
|
||||
|
@ -332,28 +322,18 @@ pub unsafe fn get_sp_limit() -> uint {
|
|||
}
|
||||
|
||||
// aarch64 - FIXME(AARCH64): missing...
|
||||
#[cfg(target_arch = "aarch64")]
|
||||
// powerpc - FIXME(POWERPC): missing...
|
||||
// arm-ios - iOS doesn't support segmented stacks yet.
|
||||
// openbsd - OpenBSD doesn't support segmented stacks.
|
||||
//
|
||||
// This function might be called by runtime though
|
||||
// so it is unsafe to unreachable, let's return a fixed constant.
|
||||
#[cfg(any(target_arch = "aarch64",
|
||||
target_arch = "powerpc",
|
||||
all(target_arch = "arm", target_os = "ios"),
|
||||
target_os = "openbsd"))]
|
||||
#[inline(always)]
|
||||
unsafe fn target_get_sp_limit() -> uint {
|
||||
1024
|
||||
}
|
||||
|
||||
// powepc - FIXME(POWERPC): missing...
|
||||
#[cfg(target_arch = "powerpc")]
|
||||
unsafe fn target_get_sp_limit() -> uint {
|
||||
1024
|
||||
}
|
||||
|
||||
// iOS doesn't support segmented stacks yet. This function might
|
||||
// be called by runtime though so it is unsafe to mark it as
|
||||
// unreachable, let's return a fixed constant.
|
||||
#[cfg(all(target_arch = "arm", target_os = "ios"))] #[inline(always)]
|
||||
unsafe fn target_get_sp_limit() -> uint {
|
||||
1024
|
||||
}
|
||||
|
||||
#[cfg(target_os = "openbsd")] #[inline(always)]
|
||||
unsafe fn target_get_sp_limit() -> uint {
|
||||
// segmented stack is disabled
|
||||
1024
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue