Revision eae6ce52 tcg/arm/tcg-target.c
b/tcg/arm/tcg-target.c | ||
---|---|---|
78 | 78 |
tcg_abort(); |
79 | 79 |
|
80 | 80 |
case R_ARM_PC24: |
81 |
*(uint32_t *) code_ptr |= (*(uint32_t *) code_ptr & 0xff000000) |
|
|
81 |
*(uint32_t *) code_ptr = ((*(uint32_t *) code_ptr) & 0xff000000) |
|
|
82 | 82 |
(((value - ((tcg_target_long) code_ptr + 8)) >> 2) & 0xffffff); |
83 | 83 |
break; |
84 | 84 |
} |
... | ... | |
109 | 109 |
break; |
110 | 110 |
|
111 | 111 |
#ifdef CONFIG_SOFTMMU |
112 |
/* qemu_ld/st inputs (unless 'd', 'D' or 'X') */
|
|
112 |
/* qemu_ld/st inputs (unless 'X' or 'D') */
|
|
113 | 113 |
case 'x': |
114 | 114 |
ct->ct |= TCG_CT_REG; |
115 | 115 |
tcg_regset_set32(ct->u.regs, 0, (1 << TCG_TARGET_NB_REGS) - 1); |
... | ... | |
995 | 995 |
tcg_out_ld32_12(s, COND_AL, data_reg, addr_reg, 0); |
996 | 996 |
break; |
997 | 997 |
case 3: |
998 |
/* TODO: use block load */ |
|
998 |
/* TODO: use block load - |
|
999 |
* check that data_reg2 > data_reg or the other way */ |
|
999 | 1000 |
tcg_out_ld32_12(s, COND_AL, data_reg, addr_reg, 0); |
1000 | 1001 |
tcg_out_ld32_12(s, COND_AL, data_reg2, addr_reg, 4); |
1001 | 1002 |
break; |
... | ... | |
1200 | 1201 |
tcg_out_st32_12(s, COND_AL, data_reg, addr_reg, 0); |
1201 | 1202 |
break; |
1202 | 1203 |
case 3: |
1203 |
/* TODO: use block store */ |
|
1204 |
/* TODO: use block store - |
|
1205 |
* check that data_reg2 > data_reg or the other way */ |
|
1204 | 1206 |
tcg_out_st32_12(s, COND_AL, data_reg, addr_reg, 0); |
1205 | 1207 |
tcg_out_st32_12(s, COND_AL, data_reg2, addr_reg, 4); |
1206 | 1208 |
break; |
Also available in: Unified diff