aboutsummaryrefslogtreecommitdiff
path: root/editors/awk.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-02-27 18:41:59 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-02-27 18:41:59 +0000
commit574f2f43948bb21d6e4187936ba5a5afccba25f6 (patch)
tree0b39aca564149e5ad30b3cc791228655ff1b1827 /editors/awk.c
parentfe66a0eca1bfeae0abc0fc1e7d3709f271e05e82 (diff)
downloadbusybox-w32-574f2f43948bb21d6e4187936ba5a5afccba25f6.tar.gz
busybox-w32-574f2f43948bb21d6e4187936ba5a5afccba25f6.tar.bz2
busybox-w32-574f2f43948bb21d6e4187936ba5a5afccba25f6.zip
*: add optimization barrier to all "G trick" locations
Diffstat (limited to 'editors/awk.c')
-rw-r--r--editors/awk.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/editors/awk.c b/editors/awk.c
index 983b31116..f04ea5ced 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -394,7 +394,8 @@ static const uint16_t PRIMES[] ALIGN2 = { 251, 1021, 4093, 16381, 65521 };
394/* Globals. Split in two parts so that first one is addressed 394/* Globals. Split in two parts so that first one is addressed
395 * with (mostly short) negative offsets */ 395 * with (mostly short) negative offsets */
396struct globals { 396struct globals {
397 chain beginseq, mainseq, endseq, *seq; 397 chain beginseq, mainseq, endseq;
398 chain *seq;
398 node *break_ptr, *continue_ptr; 399 node *break_ptr, *continue_ptr;
399 rstream *iF; 400 rstream *iF;
400 xhash *vhash, *ahash, *fdhash, *fnhash; 401 xhash *vhash, *ahash, *fdhash, *fnhash;
@@ -445,7 +446,7 @@ struct globals2 {
445 tsplitter fsplitter, rsplitter; 446 tsplitter fsplitter, rsplitter;
446}; 447};
447#define G1 (ptr_to_globals[-1]) 448#define G1 (ptr_to_globals[-1])
448#define G (*(struct globals2 *const)ptr_to_globals) 449#define G (*(struct globals2 *)ptr_to_globals)
449/* For debug. nm --size-sort awk.o | grep -vi ' [tr] ' */ 450/* For debug. nm --size-sort awk.o | grep -vi ' [tr] ' */
450/* char G1size[sizeof(G1)]; - 0x6c */ 451/* char G1size[sizeof(G1)]; - 0x6c */
451/* char Gsize[sizeof(G)]; - 0x1cc */ 452/* char Gsize[sizeof(G)]; - 0x1cc */
@@ -485,7 +486,7 @@ struct globals2 {
485#define fsplitter (G.fsplitter ) 486#define fsplitter (G.fsplitter )
486#define rsplitter (G.rsplitter ) 487#define rsplitter (G.rsplitter )
487#define INIT_G() do { \ 488#define INIT_G() do { \
488 PTR_TO_GLOBALS = xzalloc(sizeof(G1) + sizeof(G)) + sizeof(G1); \ 489 SET_PTR_TO_GLOBALS(xzalloc(sizeof(G1) + sizeof(G)) + sizeof(G1)); \
489 G.next_token__ltclass = TC_OPTERM; \ 490 G.next_token__ltclass = TC_OPTERM; \
490 G.evaluate__seed = 1; \ 491 G.evaluate__seed = 1; \
491} while (0) 492} while (0)