Revision 56779034 tcg/mips/tcg-target.c
b/tcg/mips/tcg-target.c | ||
---|---|---|
351 | 351 |
*/ |
352 | 352 |
static inline void tcg_out_opc_br(TCGContext *s, int opc, int rt, int rs) |
353 | 353 |
{ |
354 |
/* We need to keep the offset unchanged for retranslation */ |
|
354 |
/* We pay attention here to not modify the branch target by reading |
|
355 |
the existing value and using it again. This ensure that caches and |
|
356 |
memory are kept coherent during retranslation. */ |
|
355 | 357 |
uint16_t offset = (uint16_t)(*(uint32_t *) s->code_ptr); |
356 | 358 |
|
357 | 359 |
tcg_out_opc_imm(s, opc, rt, rs, offset); |
Also available in: Unified diff