Status fields:
creation_ts: | 2008-07-02 13:40 |
---|---|
component: | jit |
version: | default branch |
rep_platform: | All |
op_sys: | All |
bug_status: | RESOLVED |
resolution: | FIXED |
reporter: | twisti@complang.tuwien.ac.at |
To avoid a nasty race condition we have to flush the data relevant to a specific patcher _before_ we patch the traping instruction. Otherwise the patched instruction could read wrong data, e.g. a function pointer from the data segment. This applies to all architectures and all patcher functions need a review.
Fixed for powerpc64: http://mips.complang.tuwien.ac.at/hg/cacao/rev/6939742f4cba
Fix for ARM: http://mips.complang.tuwien.ac.at/hg/cacao/rev/ad79285abc2d
Fix for MIPS: http://mips.complang.tuwien.ac.at/hg/cacao/rev/ce2a6512a611
Fixed for x86_64: http://mips.complang.tuwien.ac.at/hg/cacao/rev/56697326cf27
Fixed for powerpc: http://mips.complang.tuwien.ac.at/hg/cacao/rev/05f3604328bc
Fixed for i386: http://mips.complang.tuwien.ac.at/hg/cacao/rev/d59d98535d79
The remaining architectures will not receive any attention going forward, so there's no point in keeping this open.