Commit 6eea2b1b81a878b471d597f7fac8598240088898
1 parent
ae200d10
add missing FORCE_RET (Paul Brook)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1329 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
18 additions
and
0 deletions
target-i386/op.c
| @@ -1842,11 +1842,13 @@ void OPPROTO op_fsts_ST0_A0(void) | @@ -1842,11 +1842,13 @@ void OPPROTO op_fsts_ST0_A0(void) | ||
| 1842 | #else | 1842 | #else |
| 1843 | stfl(A0, (float)ST0); | 1843 | stfl(A0, (float)ST0); |
| 1844 | #endif | 1844 | #endif |
| 1845 | + FORCE_RET(); | ||
| 1845 | } | 1846 | } |
| 1846 | 1847 | ||
| 1847 | void OPPROTO op_fstl_ST0_A0(void) | 1848 | void OPPROTO op_fstl_ST0_A0(void) |
| 1848 | { | 1849 | { |
| 1849 | stfq(A0, (double)ST0); | 1850 | stfq(A0, (double)ST0); |
| 1851 | + FORCE_RET(); | ||
| 1850 | } | 1852 | } |
| 1851 | 1853 | ||
| 1852 | void OPPROTO op_fstt_ST0_A0(void) | 1854 | void OPPROTO op_fstt_ST0_A0(void) |
| @@ -1868,6 +1870,7 @@ void OPPROTO op_fist_ST0_A0(void) | @@ -1868,6 +1870,7 @@ void OPPROTO op_fist_ST0_A0(void) | ||
| 1868 | if (val != (int16_t)val) | 1870 | if (val != (int16_t)val) |
| 1869 | val = -32768; | 1871 | val = -32768; |
| 1870 | stw(A0, val); | 1872 | stw(A0, val); |
| 1873 | + FORCE_RET(); | ||
| 1871 | } | 1874 | } |
| 1872 | 1875 | ||
| 1873 | void OPPROTO op_fistl_ST0_A0(void) | 1876 | void OPPROTO op_fistl_ST0_A0(void) |
| @@ -1882,6 +1885,7 @@ void OPPROTO op_fistl_ST0_A0(void) | @@ -1882,6 +1885,7 @@ void OPPROTO op_fistl_ST0_A0(void) | ||
| 1882 | d = ST0; | 1885 | d = ST0; |
| 1883 | val = lrint(d); | 1886 | val = lrint(d); |
| 1884 | stl(A0, val); | 1887 | stl(A0, val); |
| 1888 | + FORCE_RET(); | ||
| 1885 | } | 1889 | } |
| 1886 | 1890 | ||
| 1887 | void OPPROTO op_fistll_ST0_A0(void) | 1891 | void OPPROTO op_fistll_ST0_A0(void) |
| @@ -1896,6 +1900,7 @@ void OPPROTO op_fistll_ST0_A0(void) | @@ -1896,6 +1900,7 @@ void OPPROTO op_fistll_ST0_A0(void) | ||
| 1896 | d = ST0; | 1900 | d = ST0; |
| 1897 | val = llrint(d); | 1901 | val = llrint(d); |
| 1898 | stq(A0, val); | 1902 | stq(A0, val); |
| 1903 | + FORCE_RET(); | ||
| 1899 | } | 1904 | } |
| 1900 | 1905 | ||
| 1901 | void OPPROTO op_fbld_ST0_A0(void) | 1906 | void OPPROTO op_fbld_ST0_A0(void) |
| @@ -2228,6 +2233,7 @@ void OPPROTO op_fnstsw_A0(void) | @@ -2228,6 +2233,7 @@ void OPPROTO op_fnstsw_A0(void) | ||
| 2228 | int fpus; | 2233 | int fpus; |
| 2229 | fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; | 2234 | fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; |
| 2230 | stw(A0, fpus); | 2235 | stw(A0, fpus); |
| 2236 | + FORCE_RET(); | ||
| 2231 | } | 2237 | } |
| 2232 | 2238 | ||
| 2233 | void OPPROTO op_fnstsw_EAX(void) | 2239 | void OPPROTO op_fnstsw_EAX(void) |
| @@ -2240,6 +2246,7 @@ void OPPROTO op_fnstsw_EAX(void) | @@ -2240,6 +2246,7 @@ void OPPROTO op_fnstsw_EAX(void) | ||
| 2240 | void OPPROTO op_fnstcw_A0(void) | 2246 | void OPPROTO op_fnstcw_A0(void) |
| 2241 | { | 2247 | { |
| 2242 | stw(A0, env->fpuc); | 2248 | stw(A0, env->fpuc); |
| 2249 | + FORCE_RET(); | ||
| 2243 | } | 2250 | } |
| 2244 | 2251 | ||
| 2245 | void OPPROTO op_fldcw_A0(void) | 2252 | void OPPROTO op_fldcw_A0(void) |
target-i386/ops_mem.h
| @@ -51,33 +51,39 @@ void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T1_A0)(void) | @@ -51,33 +51,39 @@ void OPPROTO glue(glue(op_ldl, MEMSUFFIX), _T1_A0)(void) | ||
| 51 | void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T0_A0)(void) | 51 | void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T0_A0)(void) |
| 52 | { | 52 | { |
| 53 | glue(stb, MEMSUFFIX)(A0, T0); | 53 | glue(stb, MEMSUFFIX)(A0, T0); |
| 54 | + FORCE_RET(); | ||
| 54 | } | 55 | } |
| 55 | 56 | ||
| 56 | void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T0_A0)(void) | 57 | void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T0_A0)(void) |
| 57 | { | 58 | { |
| 58 | glue(stw, MEMSUFFIX)(A0, T0); | 59 | glue(stw, MEMSUFFIX)(A0, T0); |
| 60 | + FORCE_RET(); | ||
| 59 | } | 61 | } |
| 60 | 62 | ||
| 61 | void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void) | 63 | void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T0_A0)(void) |
| 62 | { | 64 | { |
| 63 | glue(stl, MEMSUFFIX)(A0, T0); | 65 | glue(stl, MEMSUFFIX)(A0, T0); |
| 66 | + FORCE_RET(); | ||
| 64 | } | 67 | } |
| 65 | 68 | ||
| 66 | #if 0 | 69 | #if 0 |
| 67 | void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T1_A0)(void) | 70 | void OPPROTO glue(glue(op_stb, MEMSUFFIX), _T1_A0)(void) |
| 68 | { | 71 | { |
| 69 | glue(stb, MEMSUFFIX)(A0, T1); | 72 | glue(stb, MEMSUFFIX)(A0, T1); |
| 73 | + FORCE_RET(); | ||
| 70 | } | 74 | } |
| 71 | #endif | 75 | #endif |
| 72 | 76 | ||
| 73 | void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T1_A0)(void) | 77 | void OPPROTO glue(glue(op_stw, MEMSUFFIX), _T1_A0)(void) |
| 74 | { | 78 | { |
| 75 | glue(stw, MEMSUFFIX)(A0, T1); | 79 | glue(stw, MEMSUFFIX)(A0, T1); |
| 80 | + FORCE_RET(); | ||
| 76 | } | 81 | } |
| 77 | 82 | ||
| 78 | void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T1_A0)(void) | 83 | void OPPROTO glue(glue(op_stl, MEMSUFFIX), _T1_A0)(void) |
| 79 | { | 84 | { |
| 80 | glue(stl, MEMSUFFIX)(A0, T1); | 85 | glue(stl, MEMSUFFIX)(A0, T1); |
| 86 | + FORCE_RET(); | ||
| 81 | } | 87 | } |
| 82 | 88 | ||
| 83 | /* SSE/MMX support */ | 89 | /* SSE/MMX support */ |
| @@ -93,6 +99,7 @@ void OPPROTO glue(glue(op_stq, MEMSUFFIX), _env_A0)(void) | @@ -93,6 +99,7 @@ void OPPROTO glue(glue(op_stq, MEMSUFFIX), _env_A0)(void) | ||
| 93 | uint64_t *p; | 99 | uint64_t *p; |
| 94 | p = (uint64_t *)((char *)env + PARAM1); | 100 | p = (uint64_t *)((char *)env + PARAM1); |
| 95 | glue(stq, MEMSUFFIX)(A0, *p); | 101 | glue(stq, MEMSUFFIX)(A0, *p); |
| 102 | + FORCE_RET(); | ||
| 96 | } | 103 | } |
| 97 | 104 | ||
| 98 | void OPPROTO glue(glue(op_ldo, MEMSUFFIX), _env_A0)(void) | 105 | void OPPROTO glue(glue(op_ldo, MEMSUFFIX), _env_A0)(void) |
| @@ -109,6 +116,7 @@ void OPPROTO glue(glue(op_sto, MEMSUFFIX), _env_A0)(void) | @@ -109,6 +116,7 @@ void OPPROTO glue(glue(op_sto, MEMSUFFIX), _env_A0)(void) | ||
| 109 | p = (XMMReg *)((char *)env + PARAM1); | 116 | p = (XMMReg *)((char *)env + PARAM1); |
| 110 | glue(stq, MEMSUFFIX)(A0, p->XMM_Q(0)); | 117 | glue(stq, MEMSUFFIX)(A0, p->XMM_Q(0)); |
| 111 | glue(stq, MEMSUFFIX)(A0 + 8, p->XMM_Q(1)); | 118 | glue(stq, MEMSUFFIX)(A0 + 8, p->XMM_Q(1)); |
| 119 | + FORCE_RET(); | ||
| 112 | } | 120 | } |
| 113 | 121 | ||
| 114 | #ifdef TARGET_X86_64 | 122 | #ifdef TARGET_X86_64 |
| @@ -135,11 +143,13 @@ void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _T1_A0)(void) | @@ -135,11 +143,13 @@ void OPPROTO glue(glue(op_ldq, MEMSUFFIX), _T1_A0)(void) | ||
| 135 | void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T0_A0)(void) | 143 | void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T0_A0)(void) |
| 136 | { | 144 | { |
| 137 | glue(stq, MEMSUFFIX)(A0, T0); | 145 | glue(stq, MEMSUFFIX)(A0, T0); |
| 146 | + FORCE_RET(); | ||
| 138 | } | 147 | } |
| 139 | 148 | ||
| 140 | void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T1_A0)(void) | 149 | void OPPROTO glue(glue(op_stq, MEMSUFFIX), _T1_A0)(void) |
| 141 | { | 150 | { |
| 142 | glue(stq, MEMSUFFIX)(A0, T1); | 151 | glue(stq, MEMSUFFIX)(A0, T1); |
| 152 | + FORCE_RET(); | ||
| 143 | } | 153 | } |
| 144 | #endif | 154 | #endif |
| 145 | 155 |
target-sparc/op.c
| @@ -765,6 +765,7 @@ void OPPROTO op_eval_fbue(void) | @@ -765,6 +765,7 @@ void OPPROTO op_eval_fbue(void) | ||
| 765 | { | 765 | { |
| 766 | // 0 or 3 | 766 | // 0 or 3 |
| 767 | T2 = !(FFLAG_SET(FSR_FCC1) ^ FFLAG_SET(FSR_FCC0)); | 767 | T2 = !(FFLAG_SET(FSR_FCC1) ^ FFLAG_SET(FSR_FCC0)); |
| 768 | + FORCE_RET(); | ||
| 768 | } | 769 | } |
| 769 | 770 | ||
| 770 | void OPPROTO op_eval_fbge(void) | 771 | void OPPROTO op_eval_fbge(void) |