I use the Piccolo 28035. On SPRUGE6B I didn't found any thing about delayed CLA code when the register is not ready (loaded). But on my experience the code1 is about 17ns (1 clock) slower then code2:
Code1:
MMOVZ16 MR0, @_EPwm2Regs+ePWM_TZSEL ; MR0 = Trip Zone Select register
MMOVXI MR1, #0FFBFh ; Mask for DCAEVT2
MAND32 MR0, MR0, MR1 ; Clear Bit
MMOV16 @_EPwm2Regs+ePWM_TZSEL, MR0 ; Write back
MMOVZ16 MR0, @_EPwm3Regs+ePWM_TZSEL ; MR0 = Trip Zone Select register
MMOVXI MR1, #0040h ; Mask for DCAEVT2
MOR32 MR0, MR0, MR1 ; Set Bit
MMOV16 @_EPwm3Regs+ePWM_TZSEL, MR0 ; Write back
Code2:
MMOVZ16 MR0, @_EPwm2Regs+ePWM_TZSEL ; MR0 = Trip Zone Select register
MMOVZ16 MR2, @_EPwm3Regs+ePWM_TZSEL ; MR2 = Trip Zone Select register
MMOVXI MR1, #0FFBFh ; Mask for DCAEVT2
MMOVXI MR3, #0040h ; Mask for DCAEVT2
MAND32 MR0, MR0, MR1 ; Clear Bit
MOR32 MR2, MR2, MR3 ; Set Bit
MMOV16 @_EPwm2Regs+ePWM_TZSEL, MR0 ; Write back
MMOV16 @_EPwm3Regs+ePWM_TZSEL, MR2 ; Write back