If rs == r15, the pc should still be (addr of instruction + 8), not +12.
In the .zip below, I've included a test ROM + source code for this edge case.
If the shift is by (addr of instruction + 8), the ROM displays green.
If it's +12, the ROM displays blue.
Else, it displays red.
The version of mgba I've installed displays blue, while the 3DS displays green
shift_test.zip