diff --git a/pio-parser/src/lib.rs b/pio-parser/src/lib.rs index ac09bdd..00995e8 100644 --- a/pio-parser/src/lib.rs +++ b/pio-parser/src/lib.rs @@ -272,7 +272,7 @@ impl<'i> ParsedOperands<'i> { InstructionOperands::MOVTORX { index } } (MovSrcInternal::Fifo(index), MovDestInternal::Mov(MovDestination::OSR)) => { - InstructionOperands::MOVTORX { index } + InstructionOperands::MOVFROMRX { index } } (MovSrcInternal::Mov(s), MovDestInternal::Mov(d)) => InstructionOperands::MOV { destination: d, @@ -537,8 +537,8 @@ fn test_rp2350() { let p = Parser::<32>::parse_program( " label: - mov osr, rxfifo0 - mov rxfifo1, isr + mov osr, rxfifo[0] + mov rxfifo[1], isr mov pins, isr mov osr, x jmp label diff --git a/pio-parser/src/rp2350.lalrpop b/pio-parser/src/rp2350.lalrpop index 66b1f67..e8ce88b 100644 --- a/pio-parser/src/rp2350.lalrpop +++ b/pio-parser/src/rp2350.lalrpop @@ -256,11 +256,11 @@ ParsedMovDestination: ParsedMovDestination = { "pc" => ParsedMovDestination::PC, "isr" => ParsedMovDestination::ISR, "osr" => ParsedMovDestination::OSR, - "rxfifoy" => ParsedMovDestination::RXFIFOY, - "rxfifo0" => ParsedMovDestination::RXFIFO0, - "rxfifo1" => ParsedMovDestination::RXFIFO1, - "rxfifo2" => ParsedMovDestination::RXFIFO2, - "rxfifo3" => ParsedMovDestination::RXFIFO3, + "rxfifo[y]" => ParsedMovDestination::RXFIFOY, + "rxfifo[0]" => ParsedMovDestination::RXFIFO0, + "rxfifo[1]" => ParsedMovDestination::RXFIFO1, + "rxfifo[2]" => ParsedMovDestination::RXFIFO2, + "rxfifo[3]" => ParsedMovDestination::RXFIFO3, }; MovOperation: MovOperation = { @@ -277,11 +277,11 @@ ParsedMovSource: ParsedMovSource = { "status" => ParsedMovSource::STATUS, "isr" => ParsedMovSource::ISR, "osr" => ParsedMovSource::OSR, - "rxfifoy" => ParsedMovSource::RXFIFOY, - "rxfifo0" => ParsedMovSource::RXFIFO0, - "rxfifo1" => ParsedMovSource::RXFIFO1, - "rxfifo2" => ParsedMovSource::RXFIFO2, - "rxfifo3" => ParsedMovSource::RXFIFO3, + "rxfifo[y]" => ParsedMovSource::RXFIFOY, + "rxfifo[0]" => ParsedMovSource::RXFIFO0, + "rxfifo[1]" => ParsedMovSource::RXFIFO1, + "rxfifo[2]" => ParsedMovSource::RXFIFO2, + "rxfifo[3]" => ParsedMovSource::RXFIFO3, }; IrqModifier: (bool, bool) = {