Revision ab1103de
b/target-alpha/translate.c | ||
---|---|---|
3410 | 3410 |
if (lj < j) { |
3411 | 3411 |
lj++; |
3412 | 3412 |
while (lj < j) |
3413 |
gen_opc_instr_start[lj++] = 0; |
|
3413 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
3414 | 3414 |
} |
3415 | 3415 |
tcg_ctx.gen_opc_pc[lj] = ctx.pc; |
3416 |
gen_opc_instr_start[lj] = 1; |
|
3416 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
3417 | 3417 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
3418 | 3418 |
} |
3419 | 3419 |
if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) |
... | ... | |
3468 | 3468 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
3469 | 3469 |
lj++; |
3470 | 3470 |
while (lj <= j) |
3471 |
gen_opc_instr_start[lj++] = 0; |
|
3471 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
3472 | 3472 |
} else { |
3473 | 3473 |
tb->size = ctx.pc - pc_start; |
3474 | 3474 |
tb->icount = num_insns; |
b/target-arm/translate.c | ||
---|---|---|
9838 | 9838 |
if (lj < j) { |
9839 | 9839 |
lj++; |
9840 | 9840 |
while (lj < j) |
9841 |
gen_opc_instr_start[lj++] = 0; |
|
9841 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
9842 | 9842 |
} |
9843 | 9843 |
tcg_ctx.gen_opc_pc[lj] = dc->pc; |
9844 | 9844 |
gen_opc_condexec_bits[lj] = (dc->condexec_cond << 4) | (dc->condexec_mask >> 1); |
9845 |
gen_opc_instr_start[lj] = 1; |
|
9845 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
9846 | 9846 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
9847 | 9847 |
} |
9848 | 9848 |
|
... | ... | |
9977 | 9977 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
9978 | 9978 |
lj++; |
9979 | 9979 |
while (lj <= j) |
9980 |
gen_opc_instr_start[lj++] = 0; |
|
9980 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
9981 | 9981 |
} else { |
9982 | 9982 |
tb->size = dc->pc - pc_start; |
9983 | 9983 |
tb->icount = num_insns; |
b/target-cris/translate.c | ||
---|---|---|
3301 | 3301 |
if (lj < j) { |
3302 | 3302 |
lj++; |
3303 | 3303 |
while (lj < j) { |
3304 |
gen_opc_instr_start[lj++] = 0; |
|
3304 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
3305 | 3305 |
} |
3306 | 3306 |
} |
3307 | 3307 |
if (dc->delayed_branch == 1) { |
... | ... | |
3309 | 3309 |
} else { |
3310 | 3310 |
tcg_ctx.gen_opc_pc[lj] = dc->pc; |
3311 | 3311 |
} |
3312 |
gen_opc_instr_start[lj] = 1; |
|
3312 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
3313 | 3313 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
3314 | 3314 |
} |
3315 | 3315 |
|
... | ... | |
3439 | 3439 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
3440 | 3440 |
lj++; |
3441 | 3441 |
while (lj <= j) { |
3442 |
gen_opc_instr_start[lj++] = 0; |
|
3442 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
3443 | 3443 |
} |
3444 | 3444 |
} else { |
3445 | 3445 |
tb->size = dc->pc - pc_start; |
b/target-i386/translate.c | ||
---|---|---|
7988 | 7988 |
if (lj < j) { |
7989 | 7989 |
lj++; |
7990 | 7990 |
while (lj < j) |
7991 |
gen_opc_instr_start[lj++] = 0; |
|
7991 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
7992 | 7992 |
} |
7993 | 7993 |
tcg_ctx.gen_opc_pc[lj] = pc_ptr; |
7994 | 7994 |
gen_opc_cc_op[lj] = dc->cc_op; |
7995 |
gen_opc_instr_start[lj] = 1; |
|
7995 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
7996 | 7996 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
7997 | 7997 |
} |
7998 | 7998 |
if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) |
... | ... | |
8037 | 8037 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
8038 | 8038 |
lj++; |
8039 | 8039 |
while (lj <= j) |
8040 |
gen_opc_instr_start[lj++] = 0; |
|
8040 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
8041 | 8041 |
} |
8042 | 8042 |
|
8043 | 8043 |
#ifdef DEBUG_DISAS |
... | ... | |
8080 | 8080 |
int i; |
8081 | 8081 |
qemu_log("RESTORE:\n"); |
8082 | 8082 |
for(i = 0;i <= pc_pos; i++) { |
8083 |
if (gen_opc_instr_start[i]) { |
|
8083 |
if (tcg_ctx.gen_opc_instr_start[i]) {
|
|
8084 | 8084 |
qemu_log("0x%04x: " TARGET_FMT_lx "\n", i, |
8085 | 8085 |
tcg_ctx.gen_opc_pc[i]); |
8086 | 8086 |
} |
b/target-lm32/translate.c | ||
---|---|---|
1051 | 1051 |
if (lj < j) { |
1052 | 1052 |
lj++; |
1053 | 1053 |
while (lj < j) { |
1054 |
gen_opc_instr_start[lj++] = 0; |
|
1054 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
1055 | 1055 |
} |
1056 | 1056 |
} |
1057 | 1057 |
tcg_ctx.gen_opc_pc[lj] = dc->pc; |
1058 |
gen_opc_instr_start[lj] = 1; |
|
1058 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
1059 | 1059 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
1060 | 1060 |
} |
1061 | 1061 |
|
... | ... | |
1110 | 1110 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
1111 | 1111 |
lj++; |
1112 | 1112 |
while (lj <= j) { |
1113 |
gen_opc_instr_start[lj++] = 0; |
|
1113 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
1114 | 1114 |
} |
1115 | 1115 |
} else { |
1116 | 1116 |
tb->size = dc->pc - pc_start; |
b/target-m68k/translate.c | ||
---|---|---|
3019 | 3019 |
if (lj < j) { |
3020 | 3020 |
lj++; |
3021 | 3021 |
while (lj < j) |
3022 |
gen_opc_instr_start[lj++] = 0; |
|
3022 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
3023 | 3023 |
} |
3024 | 3024 |
tcg_ctx.gen_opc_pc[lj] = dc->pc; |
3025 |
gen_opc_instr_start[lj] = 1; |
|
3025 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
3026 | 3026 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
3027 | 3027 |
} |
3028 | 3028 |
if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) |
... | ... | |
3078 | 3078 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
3079 | 3079 |
lj++; |
3080 | 3080 |
while (lj <= j) |
3081 |
gen_opc_instr_start[lj++] = 0; |
|
3081 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
3082 | 3082 |
} else { |
3083 | 3083 |
tb->size = dc->pc - pc_start; |
3084 | 3084 |
tb->icount = num_insns; |
b/target-microblaze/translate.c | ||
---|---|---|
1788 | 1788 |
if (lj < j) { |
1789 | 1789 |
lj++; |
1790 | 1790 |
while (lj < j) |
1791 |
gen_opc_instr_start[lj++] = 0; |
|
1791 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
1792 | 1792 |
} |
1793 | 1793 |
tcg_ctx.gen_opc_pc[lj] = dc->pc; |
1794 |
gen_opc_instr_start[lj] = 1; |
|
1794 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
1795 | 1795 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
1796 | 1796 |
} |
1797 | 1797 |
|
... | ... | |
1902 | 1902 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
1903 | 1903 |
lj++; |
1904 | 1904 |
while (lj <= j) |
1905 |
gen_opc_instr_start[lj++] = 0; |
|
1905 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
1906 | 1906 |
} else { |
1907 | 1907 |
tb->size = dc->pc - pc_start; |
1908 | 1908 |
tb->icount = num_insns; |
b/target-mips/translate.c | ||
---|---|---|
15579 | 15579 |
if (lj < j) { |
15580 | 15580 |
lj++; |
15581 | 15581 |
while (lj < j) |
15582 |
gen_opc_instr_start[lj++] = 0; |
|
15582 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
15583 | 15583 |
} |
15584 | 15584 |
tcg_ctx.gen_opc_pc[lj] = ctx.pc; |
15585 | 15585 |
gen_opc_hflags[lj] = ctx.hflags & MIPS_HFLAG_BMASK; |
15586 | 15586 |
gen_opc_btarget[lj] = ctx.btarget; |
15587 |
gen_opc_instr_start[lj] = 1; |
|
15587 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
15588 | 15588 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
15589 | 15589 |
} |
15590 | 15590 |
if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) |
... | ... | |
15662 | 15662 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
15663 | 15663 |
lj++; |
15664 | 15664 |
while (lj <= j) |
15665 |
gen_opc_instr_start[lj++] = 0; |
|
15665 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
15666 | 15666 |
} else { |
15667 | 15667 |
tb->size = ctx.pc - pc_start; |
15668 | 15668 |
tb->icount = num_insns; |
b/target-openrisc/translate.c | ||
---|---|---|
1707 | 1707 |
if (k < j) { |
1708 | 1708 |
k++; |
1709 | 1709 |
while (k < j) { |
1710 |
gen_opc_instr_start[k++] = 0; |
|
1710 |
tcg_ctx.gen_opc_instr_start[k++] = 0;
|
|
1711 | 1711 |
} |
1712 | 1712 |
} |
1713 | 1713 |
tcg_ctx.gen_opc_pc[k] = dc->pc; |
1714 |
gen_opc_instr_start[k] = 1; |
|
1714 |
tcg_ctx.gen_opc_instr_start[k] = 1;
|
|
1715 | 1715 |
tcg_ctx.gen_opc_icount[k] = num_insns; |
1716 | 1716 |
} |
1717 | 1717 |
|
... | ... | |
1787 | 1787 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
1788 | 1788 |
k++; |
1789 | 1789 |
while (k <= j) { |
1790 |
gen_opc_instr_start[k++] = 0; |
|
1790 |
tcg_ctx.gen_opc_instr_start[k++] = 0;
|
|
1791 | 1791 |
} |
1792 | 1792 |
} else { |
1793 | 1793 |
tb->size = dc->pc - pc_start; |
b/target-ppc/translate.c | ||
---|---|---|
9680 | 9680 |
if (lj < j) { |
9681 | 9681 |
lj++; |
9682 | 9682 |
while (lj < j) |
9683 |
gen_opc_instr_start[lj++] = 0; |
|
9683 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
9684 | 9684 |
} |
9685 | 9685 |
tcg_ctx.gen_opc_pc[lj] = ctx.nip; |
9686 |
gen_opc_instr_start[lj] = 1; |
|
9686 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
9687 | 9687 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
9688 | 9688 |
} |
9689 | 9689 |
LOG_DISAS("----------------\n"); |
... | ... | |
9781 | 9781 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
9782 | 9782 |
lj++; |
9783 | 9783 |
while (lj <= j) |
9784 |
gen_opc_instr_start[lj++] = 0; |
|
9784 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
9785 | 9785 |
} else { |
9786 | 9786 |
tb->size = ctx.nip - pc_start; |
9787 | 9787 |
tb->icount = num_insns; |
b/target-s390x/translate.c | ||
---|---|---|
5160 | 5160 |
if (lj < j) { |
5161 | 5161 |
lj++; |
5162 | 5162 |
while (lj < j) { |
5163 |
gen_opc_instr_start[lj++] = 0; |
|
5163 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
5164 | 5164 |
} |
5165 | 5165 |
} |
5166 | 5166 |
tcg_ctx.gen_opc_pc[lj] = dc.pc; |
5167 | 5167 |
gen_opc_cc_op[lj] = dc.cc_op; |
5168 |
gen_opc_instr_start[lj] = 1; |
|
5168 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
5169 | 5169 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
5170 | 5170 |
} |
5171 | 5171 |
if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) { |
... | ... | |
5212 | 5212 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
5213 | 5213 |
lj++; |
5214 | 5214 |
while (lj <= j) { |
5215 |
gen_opc_instr_start[lj++] = 0; |
|
5215 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
5216 | 5216 |
} |
5217 | 5217 |
} else { |
5218 | 5218 |
tb->size = dc.pc - pc_start; |
b/target-sh4/translate.c | ||
---|---|---|
2003 | 2003 |
if (ii < i) { |
2004 | 2004 |
ii++; |
2005 | 2005 |
while (ii < i) |
2006 |
gen_opc_instr_start[ii++] = 0; |
|
2006 |
tcg_ctx.gen_opc_instr_start[ii++] = 0;
|
|
2007 | 2007 |
} |
2008 | 2008 |
tcg_ctx.gen_opc_pc[ii] = ctx.pc; |
2009 | 2009 |
gen_opc_hflags[ii] = ctx.flags; |
2010 |
gen_opc_instr_start[ii] = 1; |
|
2010 |
tcg_ctx.gen_opc_instr_start[ii] = 1;
|
|
2011 | 2011 |
tcg_ctx.gen_opc_icount[ii] = num_insns; |
2012 | 2012 |
} |
2013 | 2013 |
if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) |
... | ... | |
2061 | 2061 |
i = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
2062 | 2062 |
ii++; |
2063 | 2063 |
while (ii <= i) |
2064 |
gen_opc_instr_start[ii++] = 0; |
|
2064 |
tcg_ctx.gen_opc_instr_start[ii++] = 0;
|
|
2065 | 2065 |
} else { |
2066 | 2066 |
tb->size = ctx.pc - pc_start; |
2067 | 2067 |
tb->icount = num_insns; |
b/target-sparc/translate.c | ||
---|---|---|
5283 | 5283 |
if (lj < j) { |
5284 | 5284 |
lj++; |
5285 | 5285 |
while (lj < j) |
5286 |
gen_opc_instr_start[lj++] = 0; |
|
5286 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
5287 | 5287 |
tcg_ctx.gen_opc_pc[lj] = dc->pc; |
5288 | 5288 |
gen_opc_npc[lj] = dc->npc; |
5289 |
gen_opc_instr_start[lj] = 1; |
|
5289 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
5290 | 5290 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
5291 | 5291 |
} |
5292 | 5292 |
} |
... | ... | |
5339 | 5339 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
5340 | 5340 |
lj++; |
5341 | 5341 |
while (lj <= j) |
5342 |
gen_opc_instr_start[lj++] = 0; |
|
5342 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
5343 | 5343 |
#if 0 |
5344 | 5344 |
log_page_dump(); |
5345 | 5345 |
#endif |
b/target-unicore32/translate.c | ||
---|---|---|
2003 | 2003 |
if (lj < j) { |
2004 | 2004 |
lj++; |
2005 | 2005 |
while (lj < j) { |
2006 |
gen_opc_instr_start[lj++] = 0; |
|
2006 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
2007 | 2007 |
} |
2008 | 2008 |
} |
2009 | 2009 |
tcg_ctx.gen_opc_pc[lj] = dc->pc; |
2010 |
gen_opc_instr_start[lj] = 1; |
|
2010 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
2011 | 2011 |
tcg_ctx.gen_opc_icount[lj] = num_insns; |
2012 | 2012 |
} |
2013 | 2013 |
|
... | ... | |
2117 | 2117 |
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf; |
2118 | 2118 |
lj++; |
2119 | 2119 |
while (lj <= j) { |
2120 |
gen_opc_instr_start[lj++] = 0; |
|
2120 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
2121 | 2121 |
} |
2122 | 2122 |
} else { |
2123 | 2123 |
tb->size = dc->pc - pc_start; |
b/target-xtensa/translate.c | ||
---|---|---|
2897 | 2897 |
if (lj < j) { |
2898 | 2898 |
lj++; |
2899 | 2899 |
while (lj < j) { |
2900 |
gen_opc_instr_start[lj++] = 0; |
|
2900 |
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
|
2901 | 2901 |
} |
2902 | 2902 |
} |
2903 | 2903 |
tcg_ctx.gen_opc_pc[lj] = dc.pc; |
2904 |
gen_opc_instr_start[lj] = 1; |
|
2904 |
tcg_ctx.gen_opc_instr_start[lj] = 1;
|
|
2905 | 2905 |
tcg_ctx.gen_opc_icount[lj] = insn_count; |
2906 | 2906 |
} |
2907 | 2907 |
|
b/translate-all.c | ||
---|---|---|
146 | 146 |
if (j < 0) |
147 | 147 |
return -1; |
148 | 148 |
/* now find start of instruction before */ |
149 |
while (gen_opc_instr_start[j] == 0)
|
|
149 |
while (s->gen_opc_instr_start[j] == 0) {
|
|
150 | 150 |
j--; |
151 |
} |
|
151 | 152 |
env->icount_decr.u16.low -= s->gen_opc_icount[j]; |
152 | 153 |
|
153 | 154 |
restore_state_to_opc(env, tb, j); |
Also available in: Unified diff