PS2 Syscall - Delay slot?

kozarovv

Developer
Hello, does Syscall instruction on PS2 is treat like a branch/jump? Does it it have delay slot like other branch instructions? I'm trying to fix something that in emulation is called "evil branches", this is code where you can find another branch in branch delay slot. Does it apply also here?

gsdx0.94.jpg


Edit: Nevermind, it is not. Looks like all syscall instructions have jr ra in next address. So is impossible that is delay slot.
 
Last edited:
Hello, does Syscall instruction on PS2 is treat like a branch/jump? Does it it have delay slot like other branch instructions? I'm trying to fix something that in emulation is called "evil branches", this is code where you can find another branch in branch delay slot. Does it apply also here?

View attachment 25966

Edit: Nevermind, it is not. Looks like all syscall instructions have jr ra in next address. So is impossible that is delay slot.

There is no delay slot. It may seem strange but you can think of a syscall as throwing an exception/triggering an interrupt. The processor stops executing instructions at pc, loads an address from an interrupt vector, switches to kernel mode and begins executing that.
 

Similar threads

Back
Top