About breakpoints and the JIT cache
|
01-19-2014, 05:28 AM
(This post was last modified: 01-19-2014 05:30 AM by [Unknown].)
Post: #2
|
|||
|
|||
RE: About breakpoints and the JIT cache
1. Intended. Otherwise, you must build a debug build. Checking for breakpoints is extremely slow in the interpreter (even if there are 0) and not enabled in release mode. Jit only gets slower if you add memory breakpoints, and so they are always enabled.
2. You should be able to call sceKernelIcacheInvalidateRange(). Alternatively, you can write the entire range. As long as you overwrite the first word of each block, it will automatically recompile it during jit. If you modify (e.g. xor, add, etc.) the existing opcodes, you are very likely to cause a crash while in jit. If you are doing this, call sceKernelIcacheInvalidateRange() __BEFORE__ modifying them. Jit actually modifies the opcodes to indicate where the jitted code is in host memory, so when you alter this, it confuses jit. It's a bit of a hack but seems to work with the self-modifying code of all games we've run into. -[Unknown] |
|||
« Next Oldest | Next Newest »
|
Messages In This Thread |
About breakpoints and the JIT cache - mothball - 01-19-2014, 04:55 AM
RE: About breakpoints and the JIT cache - [Unknown] - 01-19-2014 05:28 AM
RE: About breakpoints and the JIT cache - mothball - 01-21-2014, 08:00 PM
RE: About breakpoints and the JIT cache - Henrik - 01-22-2014, 09:36 AM
|