Use the target-lexicon crate.
This switches from a custom list of architectures to use the target-lexicon crate. - "set is_64bit=1; isa x86" is replaced with "target x86_64", and similar for other architectures, and the `is_64bit` flag is removed entirely. - The `is_compressed` flag is removed too; it's no longer being used to control REX prefixes on x86-64, ARM and Thumb are separate architectures in target-lexicon, and we can figure out how to select RISC-V compressed encodings when we're ready.
This commit is contained in:
@@ -10,6 +10,7 @@ use libc;
|
||||
use memory::Memory;
|
||||
use std::ffi::CString;
|
||||
use std::ptr;
|
||||
use target_lexicon::PointerWidth;
|
||||
#[cfg(windows)]
|
||||
use winapi;
|
||||
|
||||
@@ -173,10 +174,10 @@ impl<'simple_jit_backend> Backend for SimpleJITBackend {
|
||||
}
|
||||
}
|
||||
|
||||
let reloc = if self.isa.flags().is_64bit() {
|
||||
Reloc::Abs8
|
||||
} else {
|
||||
Reloc::Abs4
|
||||
let reloc = match self.isa.triple().pointer_width().unwrap() {
|
||||
PointerWidth::U16 => panic!(),
|
||||
PointerWidth::U32 => Reloc::Abs4,
|
||||
PointerWidth::U64 => Reloc::Abs8,
|
||||
};
|
||||
let mut relocs = Vec::new();
|
||||
for &(offset, id) in function_relocs {
|
||||
|
||||
@@ -18,6 +18,7 @@ extern crate cretonne_native;
|
||||
extern crate errno;
|
||||
extern crate libc;
|
||||
extern crate region;
|
||||
extern crate target_lexicon;
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
extern crate winapi;
|
||||
|
||||
Reference in New Issue
Block a user