From a894594ae578a2628ceedd3860ea5c84ac926768 Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Sun, 10 Oct 2021 15:23:39 +0200 Subject: [PATCH] Update parser --- cranelift/reader/src/parser.rs | 26 +++++++++----------------- cranelift/reader/src/sourcemap.rs | 2 +- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/cranelift/reader/src/parser.rs b/cranelift/reader/src/parser.rs index 0f63a1c4fd..46ac424957 100644 --- a/cranelift/reader/src/parser.rs +++ b/cranelift/reader/src/parser.rs @@ -251,7 +251,7 @@ impl Context { self.map.def_ss(ss, loc)?; while self.function.stack_slots.next_key().index() <= ss.index() { self.function - .create_stack_slot(StackSlotData::new(StackSlotKind::SpillSlot, 0)); + .create_stack_slot(StackSlotData::new(StackSlotKind::ExplicitSlot, 0)); } self.function.stack_slots[ss] = data; Ok(()) @@ -1431,15 +1431,7 @@ impl<'a> Parser<'a> { if bytes > i64::from(u32::MAX) { return err!(self.loc, "stack slot too large"); } - let mut data = StackSlotData::new(kind, bytes as u32); - - // Take additional options. - while self.optional(Token::Comma) { - match self.match_any_identifier("expected stack slot flags")? { - "offset" => data.offset = Some(self.match_imm32("expected byte offset")?), - other => return err!(self.loc, "Unknown stack slot flag '{}'", other), - } - } + let data = StackSlotData::new(kind, bytes as u32); // Collect any trailing comments. self.token(); @@ -3122,8 +3114,8 @@ mod tests { fn stack_slot_decl() { let (func, _) = Parser::new( "function %foo() system_v { - ss3 = incoming_arg 13 - ss1 = spill_slot 1 + ss3 = explicit_slot 13 + ss1 = explicit_slot 1 }", ) .parse_function() @@ -3133,12 +3125,12 @@ mod tests { let _ss0 = iter.next().unwrap(); let ss1 = iter.next().unwrap(); assert_eq!(ss1.to_string(), "ss1"); - assert_eq!(func.stack_slots[ss1].kind, StackSlotKind::SpillSlot); + assert_eq!(func.stack_slots[ss1].kind, StackSlotKind::ExplicitSlot); assert_eq!(func.stack_slots[ss1].size, 1); let _ss2 = iter.next().unwrap(); let ss3 = iter.next().unwrap(); assert_eq!(ss3.to_string(), "ss3"); - assert_eq!(func.stack_slots[ss3].kind, StackSlotKind::IncomingArg); + assert_eq!(func.stack_slots[ss3].kind, StackSlotKind::ExplicitSlot); assert_eq!(func.stack_slots[ss3].size, 13); assert_eq!(iter.next(), None); @@ -3146,8 +3138,8 @@ mod tests { assert_eq!( Parser::new( "function %bar() system_v { - ss1 = spill_slot 13 - ss1 = spill_slot 1 + ss1 = explicit_slot 13 + ss1 = explicit_slot 1 }", ) .parse_function() @@ -3338,7 +3330,7 @@ mod tests { let (func, Details { comments, .. }) = Parser::new( "; before function %comment() system_v { ; decl - ss10 = outgoing_arg 13 ; stackslot. + ss10 = explicit_slot 13 ; stackslot. ; Still stackslot. jt10 = jump_table [block0] ; Jumptable diff --git a/cranelift/reader/src/sourcemap.rs b/cranelift/reader/src/sourcemap.rs index 16cd9e5684..2a9298b8c1 100644 --- a/cranelift/reader/src/sourcemap.rs +++ b/cranelift/reader/src/sourcemap.rs @@ -227,7 +227,7 @@ mod tests { fn details() { let tf = parse_test( "function %detail() { - ss10 = incoming_arg 13 + ss10 = explicit_slot 13 jt10 = jump_table [block0] block0(v4: i32, v7: i32): v10 = iadd v4, v7