diff --git a/src/etnaviv/isa/isa.rs b/src/etnaviv/isa/isa.rs index b98e712d89a..e65b955fab3 100644 --- a/src/etnaviv/isa/isa.rs +++ b/src/etnaviv/isa/isa.rs @@ -9,6 +9,7 @@ use std::collections::HashMap; #[derive(Debug)] pub struct Bitset<'a> { pub name: &'a str, + pub displayname: Option<&'a str>, pub extends: Option<&'a str>, pub meta: HashMap<&'a str, &'a str>, } @@ -112,6 +113,7 @@ impl<'a> ISA<'a> { .filter(|node| node.is_element() && node.has_tag_name("bitset")) .for_each(|node| { let name = node.attribute("name").unwrap(); + let displayname = node.attribute("displayname"); let extends = node.attribute("extends"); let meta_nodes = node .children() @@ -127,6 +129,7 @@ impl<'a> ISA<'a> { name, Bitset { name, + displayname, extends, meta: combined_meta, }, diff --git a/src/etnaviv/isa/isa_proc.rs b/src/etnaviv/isa/isa_proc.rs index 7c08f223064..75d00807e17 100644 --- a/src/etnaviv/isa/isa_proc.rs +++ b/src/etnaviv/isa/isa_proc.rs @@ -281,7 +281,10 @@ fn generate_peg_grammar_instructions(isa: &ISA) -> String { // Prepare rule parts let mut rule_parts = Vec::new(); - rule_parts.push(format!("\"{}\"", instruction.name)); + rule_parts.push(format!( + "\"{}\"", + instruction.displayname.unwrap_or(instruction.name) + )); let template_key = format!("INSTR_{}", type_.to_ascii_uppercase()); let flags = isa