diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-27 18:41:59 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-27 18:41:59 +0000 |
commit | 574f2f43948bb21d6e4187936ba5a5afccba25f6 (patch) | |
tree | 0b39aca564149e5ad30b3cc791228655ff1b1827 /editors/awk.c | |
parent | fe66a0eca1bfeae0abc0fc1e7d3709f271e05e82 (diff) | |
download | busybox-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.c | 7 |
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 */ |
396 | struct globals { | 396 | struct 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) |