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.