From: Raymond Hettinger Date: Fri, 12 Mar 2004 09:12:22 +0000 (+0000) Subject: Move the code for BREAK and CONTINUE_LOOP to be near FOR_ITER. X-Git-Tag: v2.4a1~714 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2d783e9b16e5500d4ef6a2783b92051fe9fed154;p=python Move the code for BREAK and CONTINUE_LOOP to be near FOR_ITER. Makes it more likely that all loop operations are in the cache at the same time. --- diff --git a/Python/ceval.c b/Python/ceval.c index 3c9076c619..71fd5471a9 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1583,15 +1583,6 @@ eval_frame(PyFrameObject *f) #ifdef CASE_TOO_BIG default: switch (opcode) { #endif - case BREAK_LOOP: - why = WHY_BREAK; - goto fast_block_end; - - case CONTINUE_LOOP: - retval = PyInt_FromLong(oparg); - why = WHY_CONTINUE; - goto fast_block_end; - case RAISE_VARARGS: u = v = w = NULL; switch (oparg) { @@ -2109,6 +2100,15 @@ eval_frame(PyFrameObject *f) JUMPBY(oparg); continue; + case BREAK_LOOP: + why = WHY_BREAK; + goto fast_block_end; + + case CONTINUE_LOOP: + retval = PyInt_FromLong(oparg); + why = WHY_CONTINUE; + goto fast_block_end; + case SETUP_LOOP: case SETUP_EXCEPT: case SETUP_FINALLY: