-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This adds support for the IBM z/Architecture (s390x-ibm-linux). The status of the s390x backend in its current form is: - Wasmtime is fully functional and passes all tests on s390x. - All back-end features supported, with the exception of SIMD. - There is still a lot of potential for performance improvements. - Currently the only supported processor type is z15.
- Loading branch information
Showing
43 changed files
with
24,276 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
use crate::cdsl::cpu_modes::CpuMode; | ||
use crate::cdsl::instructions::{InstructionGroupBuilder, InstructionPredicateMap}; | ||
use crate::cdsl::isa::TargetIsa; | ||
use crate::cdsl::recipes::Recipes; | ||
use crate::cdsl::regs::IsaRegsBuilder; | ||
use crate::cdsl::settings::SettingGroupBuilder; | ||
|
||
use crate::shared::Definitions as SharedDefinitions; | ||
|
||
pub(crate) fn define(shared_defs: &mut SharedDefinitions) -> TargetIsa { | ||
let inst_group = InstructionGroupBuilder::new(&mut shared_defs.all_instructions).build(); | ||
let settings = SettingGroupBuilder::new("s390x").build(); | ||
let regs = IsaRegsBuilder::new().build(); | ||
let recipes = Recipes::new(); | ||
let encodings_predicates = InstructionPredicateMap::new(); | ||
|
||
let mut mode = CpuMode::new("s390x"); | ||
let expand = shared_defs.transform_groups.by_name("expand"); | ||
mode.legalize_default(expand); | ||
let cpu_modes = vec![mode]; | ||
|
||
TargetIsa::new( | ||
"s390x", | ||
inst_group, | ||
settings, | ||
regs, | ||
recipes, | ||
cpu_modes, | ||
encodings_predicates, | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.