[#59758] translate: Restore CPU state to the next instruction after a precise pause
diff --git a/src/Infrastructure b/src/Infrastructure
index dba5b21..5904a43 160000
--- a/src/Infrastructure
+++ b/src/Infrastructure
@@ -1 +1 @@
-Subproject commit dba5b2134eb75b659468a8c98bc2de7b9631f558
+Subproject commit 5904a437c60ea376b679e8de92b71b29a62c8f8a
diff --git a/tests/unit-tests/hooks.robot b/tests/unit-tests/hooks.robot
index 519d976..788b397 100644
--- a/tests/unit-tests/hooks.robot
+++ b/tests/unit-tests/hooks.robot
@@ -167,7 +167,7 @@
     Wait For Prompt On Uart  x     pauseEmulation=true
 
     ${cnt}=                  Execute Command  sysbus.cpu PC
-    Should Be Equal As Numbers          ${cnt}  0x2c
+    Should Be Equal As Numbers          ${cnt}  0x30
 
     ${cnt}=                  Execute Command  sysbus.cpu ExecutedInstructions
     Should Be Equal As Numbers          ${cnt}  8
diff --git a/tests/unit-tests/precise-pause.robot b/tests/unit-tests/precise-pause.robot
index 3b1ad45..08f51cf 100644
--- a/tests/unit-tests/precise-pause.robot
+++ b/tests/unit-tests/precise-pause.robot
@@ -85,7 +85,22 @@
     Should Be Equal          ${l.groups[0]}  6401
 
     Emulation Should Be Paused At Time  00:00:00.000226
-    PC Should Be Equal       0x8002c08  # this is the STR that writes to TDR in LL_USART_TransmitData8
+    PC Should Be Equal       0x8002c0a  # this is the next instruction after STR that writes to TDR in LL_USART_TransmitData8
+
+Emulation Should Pause Precisely Between Translation Blocks
+    Create Machine With Button And LED  button
+    # Forcing all blocks to contain a single instruction will force the precise pauses to be handled between blocks
+    Execute Command          cpu MaximumBlockSize 1
+
+    Wait For Line On Uart    Press the button  pauseEmulation=true
+
+    Execute Command          gpioPortB.button Press
+
+    ${l}=                    Wait For Line On Uart  Button pressed at (\\d+)  pauseEmulation=true  treatAsRegex=true
+    Should Be Equal          ${l.groups[0]}  6401
+
+    Emulation Should Be Paused At Time  00:00:00.000226
+    PC Should Be Equal       0x8002c0a  # this is the next instruction after STR that writes to TDR in LL_USART_TransmitData8
 
 Quantum Should Not Impact Tester Pause PC
     Create Machine With Button And LED  button
@@ -97,7 +112,7 @@
 
     Wait For Line On Uart    Button pressed at (\\d+)  pauseEmulation=true  treatAsRegex=true
 
-    PC Should Be Equal       0x8002c08
+    PC Should Be Equal       0x8002c0a
 
 RunFor Should Work After Precise Pause
     Create Machine With Button And LED  button
@@ -134,11 +149,11 @@
 
     Assert LED State         true  pauseEmulation=true
     Emulation Should Be Paused At Time  00:00:00.000120
-    PC Should Be Equal       0x8002a46  # this is the STR that writes to BSRR in gpio_stm32_port_set_bits_raw
+    PC Should Be Equal       0x8002a48  # this is the next instruction after STR that writes to BSRR in gpio_stm32_port_set_bits_raw
 
     Assert LED State         false  pauseEmulation=true
     Emulation Should Be Paused At Time  00:00:01.000211
-    PC Should Be Equal       0x80028a2  # this is the STR that writes to BRR in LL_GPIO_ResetOutputPin
+    PC Should Be Equal       0x80028a4  # this is the next instruction after STR that writes to BRR in LL_GPIO_ResetOutputPin
 
     Provides                 synced-blinky
 
@@ -172,14 +187,14 @@
     Write Line To Uart       led on leds 0  waitForEcho=false
     Wait For Line On Uart    leds: turning on LED 0  pauseEmulation=true
     Emulation Should Be Paused At Time  00:00:00.001239
-    PC Should Be Equal       0x800b26a
+    PC Should Be Equal       0x800b26c
     # The LED should not be turned on yet: the string is printed before actually changing the GPIO
     Assert LED State         false  0
 
     # Now wait for the LED to turn on
     Assert LED State         true  pauseEmulation=true
     Emulation Should Be Paused At Time  00:00:00.001243
-    PC Should Be Equal       0x800af0a
+    PC Should Be Equal       0x800af0c
 
 LED Tester Assertion Triggered By PWM Should Not Log Errors
     Create Log Tester        0