File tree Expand file tree Collapse file tree 1 file changed +16
-40
lines changed
Expand file tree Collapse file tree 1 file changed +16
-40
lines changed Original file line number Diff line number Diff line change 2828 __RVM_DISPATCH; \
2929 } \
3030 } while (0)
31+ #define util_jmpif (expr , pcoff ) do { \
32+ if ((expr)) { \
33+ pc += (pcoff); \
34+ util_checkpc(); \
35+ } \
36+ } while (0)
3137
3238DEF (nop ) {
3339 vmnext ;
@@ -249,82 +255,52 @@ DEF(loop) {
249255}
250256
251257DEF (je ) {
252- if (hasf (RVM_FEQ )) {
253- pc += imm23s ;
254- util_checkpc ();
255- }
258+ util_jmpif (hasf (RVM_FEQ ), imm23s );
256259 vmnext ;
257260}
258261
259262DEF (jne ) {
260- if (!hasf (RVM_FEQ )) {
261- pc += imm23s ;
262- util_checkpc ();
263- }
263+ util_jmpif (!hasf (RVM_FEQ ), imm23s );
264264 vmnext ;
265265}
266266
267267DEF (jg ) {
268- if (hasf (RVM_FGT )) {
269- pc += imm23s ;
270- util_checkpc ();
271- }
268+ util_jmpif (hasf (RVM_FGT ), imm23s );
272269 vmnext ;
273270}
274271
275272DEF (ja ) {
276- if (hasf (RVM_FAB )) {
277- pc += imm23s ;
278- util_checkpc ();
279- }
273+ util_jmpif (hasf (RVM_FAB ), imm23s );
280274 vmnext ;
281275}
282276
283277DEF (jl ) {
284- if (!hasf (RVM_FGT | RVM_FEQ )) {
285- pc += imm23s ;
286- util_checkpc ();
287- }
278+ util_jmpif (!hasf (RVM_FGT | RVM_FEQ ), imm23s );
288279 vmnext ;
289280}
290281
291282DEF (jb ) {
292- if (!hasf (RVM_FAB | RVM_FEQ )) {
293- pc += imm23s ;
294- util_checkpc ();
295- }
283+ util_jmpif (!hasf (RVM_FAB | RVM_FEQ ), imm23s );
296284 vmnext ;
297285}
298286
299287DEF (jge ) {
300- if (hasf (RVM_FGT ) || hasf (RVM_FEQ )) {
301- pc += imm23s ;
302- util_checkpc ();
303- }
288+ util_jmpif (hasf (RVM_FGT ) || hasf (RVM_FEQ ), imm23s );
304289 vmnext ;
305290}
306291
307292DEF (jae ) {
308- if (hasf (RVM_FAB ) || hasf (RVM_FEQ )) {
309- pc += imm23s ;
310- util_checkpc ();
311- }
293+ util_jmpif (hasf (RVM_FAB ) || hasf (RVM_FEQ ), imm23s );
312294 vmnext ;
313295}
314296
315297DEF (jle ) {
316- if (!hasf (RVM_FGT )) {
317- pc += imm23s ;
318- util_checkpc ();
319- }
298+ util_jmpif (!hasf (RVM_FGT ), imm23s );
320299 vmnext ;
321300}
322301
323302DEF (jbe ) {
324- if (!hasf (RVM_FAB )) {
325- pc += imm23s ;
326- util_checkpc ();
327- }
303+ util_jmpif (!hasf (RVM_FAB ), imm23s );
328304 vmnext ;
329305}
330306
You can’t perform that action at this time.
0 commit comments