|
29 | 29 | IN_SOURCES = ["pins", "x", "y", "null", None, None, "isr", "osr"]
|
30 | 30 | OUT_DESTINATIONS = ["pins", "x", "y", "null", "pindirs", "pc", "isr", "exec"]
|
31 | 31 | WAIT_SOURCES = ["gpio", "pin", "irq", None]
|
32 |
| -MOV_DESTINATIONS = ["pins", "x", "y", None, "exec", "pc", "isr", "osr"] |
| 32 | +MOV_DESTINATIONS_V0 = ["pins", "x", "y", None, "exec", "pc", "isr", "osr"] |
| 33 | +MOV_DESTINATIONS_V1 = ["pins", "x", "y", "pindirs", "exec", "pc", "isr", "osr"] |
33 | 34 | MOV_SOURCES = ["pins", "x", "y", "null", None, "status", "isr", "osr"]
|
34 | 35 | MOV_OPS = [None, "~", "::", None]
|
35 | 36 | SET_DESTINATIONS = ["pins", "x", "y", None, "pindirs", None, None, None]
|
@@ -219,6 +220,11 @@ def parse_rxfifo_brackets(arg, fifo_dir):
|
219 | 220 | instructions.append(line)
|
220 | 221 | linemap.append(i)
|
221 | 222 |
|
| 223 | + if pio_version >= 1: |
| 224 | + mov_destinations = MOV_DESTINATIONS_V1 |
| 225 | + else: |
| 226 | + mov_destinations = MOV_DESTINATIONS_V0 |
| 227 | + |
222 | 228 | max_delay = 2 ** (5 - sideset_count - sideset_enable) - 1
|
223 | 229 | assembled = []
|
224 | 230 | for line in instructions:
|
@@ -331,7 +337,7 @@ def parse_rxfifo_brackets(arg, fifo_dir):
|
331 | 337 | assembled[-1] |= parse_rxfifo_brackets(instruction[2], "get")
|
332 | 338 | else:
|
333 | 339 | assembled.append(0b101_00000_000_00_000)
|
334 |
| - assembled[-1] |= MOV_DESTINATIONS.index(instruction[1]) << 5 |
| 340 | + assembled[-1] |= mov_destinations.index(instruction[1]) << 5 |
335 | 341 | source = instruction[-1]
|
336 | 342 | source_split = mov_splitter(source)
|
337 | 343 | if len(source_split) == 1:
|
|
0 commit comments