diff --git a/fuzzers/005-tilegrid/Makefile b/fuzzers/005-tilegrid/Makefile index 404abae9..57221ada 100644 --- a/fuzzers/005-tilegrid/Makefile +++ b/fuzzers/005-tilegrid/Makefile @@ -14,7 +14,7 @@ $(SPECIMENS_OK): touch $@ clean: - rm -rf $(SPECIMENS) tilegrid.json + rm -rf specimen_[0-9][0-9][0-9]/ tilegrid.json .PHONY: database pushdb clean diff --git a/fuzzers/010-lutinit/Makefile b/fuzzers/010-lutinit/Makefile index 157571cc..93c169f8 100644 --- a/fuzzers/010-lutinit/Makefile +++ b/fuzzers/010-lutinit/Makefile @@ -20,7 +20,7 @@ $(SPECIMENS_OK): touch $@ clean: - rm -rf $(SPECIMENS) seg_clbll.segbits seg_clblm.segbits + rm -rf specimen_[0-9][0-9][0-9]/ seg_clbll.segbits seg_clblm.segbits .PHONY: database pushdb clean diff --git a/fuzzers/010-lutinit/generate.py b/fuzzers/010-lutinit/generate.py index 1baf52ee..18073d8b 100644 --- a/fuzzers/010-lutinit/generate.py +++ b/fuzzers/010-lutinit/generate.py @@ -19,8 +19,8 @@ with open("design_%s.bits" % sys.argv[1], "r") as f: for line in f: line = line.split("_") bit_frame = int(line[1], 16) - bit_wordidx = int(line[2], 16) - bit_bitidx = int(line[3], 16) + bit_wordidx = int(line[2], 10) + bit_bitidx = int(line[3], 10) base_frame = bit_frame & ~0x7f if base_frame not in bits: @@ -65,7 +65,7 @@ for tilename, tiledata in grid["tiles"].items(): segments = segments_by_type[segdata["type"]] tile_type = tiledata["type"] - segname = "%s_%02x" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1]) + segname = "%s_%03d" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1]) if not segname in segments: segments[segname] = { "bits": list(), "tags": dict() } @@ -97,7 +97,7 @@ for tilename, tiledata in grid["tiles"].items(): if wordidx not in bits[base_frame]: continue for bit_frame, bit_wordidx, bit_bitidx in bits[base_frame][wordidx]: - segments[segname]["bits"].append("%02x_%02x_%02x" % (bit_frame - base_frame, bit_wordidx - segdata["baseaddr"][1], bit_bitidx)) + segments[segname]["bits"].append("%02d_%02d" % (bit_frame - base_frame, 32*(bit_wordidx - segdata["baseaddr"][1]) + bit_bitidx)) segments[segname]["bits"].sort() @@ -111,6 +111,8 @@ for segtype in segments_by_type.keys(): with open("segdata_%s_%s.txt" % (segtype, sys.argv[1]), "w") as f: segments = segments_by_type[segtype] for segname, segdata in sorted(segments.items()): + if len(segdata["tags"]) == 0: + continue print("seg %s" % segname, file=f) for bitname in sorted(segdata["bits"]): print("bit %s" % bitname, file=f) diff --git a/fuzzers/011-ffconfig/Makefile b/fuzzers/011-ffconfig/Makefile index 030826df..f4fd93a3 100644 --- a/fuzzers/011-ffconfig/Makefile +++ b/fuzzers/011-ffconfig/Makefile @@ -20,7 +20,7 @@ $(SPECIMENS_OK): touch $@ clean: - rm -rf $(SPECIMENS) seg_clbll.segbits seg_clblm.segbits + rm -rf specimen_[0-9][0-9][0-9]/ seg_clbll.segbits seg_clblm.segbits .PHONY: database pushdb clean diff --git a/fuzzers/011-ffconfig/generate.py b/fuzzers/011-ffconfig/generate.py index 7e73a7d0..4305f2a5 100644 --- a/fuzzers/011-ffconfig/generate.py +++ b/fuzzers/011-ffconfig/generate.py @@ -19,8 +19,8 @@ with open("design_%s.bits" % sys.argv[1], "r") as f: for line in f: line = line.split("_") bit_frame = int(line[1], 16) - bit_wordidx = int(line[2], 16) - bit_bitidx = int(line[3], 16) + bit_wordidx = int(line[2], 10) + bit_bitidx = int(line[3], 10) base_frame = bit_frame & ~0x7f if base_frame not in bits: @@ -66,7 +66,7 @@ for tilename, tiledata in grid["tiles"].items(): segments = segments_by_type[segdata["type"]] tile_type = tiledata["type"] - segname = "%s_%02x" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1]) + segname = "%s_%03d" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1]) if not segname in segments: segments[segname] = { "bits": list(), "tags": dict() } @@ -97,7 +97,7 @@ for tilename, tiledata in grid["tiles"].items(): if wordidx not in bits[base_frame]: continue for bit_frame, bit_wordidx, bit_bitidx in bits[base_frame][wordidx]: - segments[segname]["bits"].append("%02x_%02x_%02x" % (bit_frame - base_frame, bit_wordidx - segdata["baseaddr"][1], bit_bitidx)) + segments[segname]["bits"].append("%02d_%02d" % (bit_frame - base_frame, 32*(bit_wordidx - segdata["baseaddr"][1]) + bit_bitidx)) segments[segname]["bits"].sort() @@ -111,6 +111,8 @@ for segtype in segments_by_type.keys(): with open("segdata_%s_%s.txt" % (segtype, sys.argv[1]), "w") as f: segments = segments_by_type[segtype] for segname, segdata in sorted(segments.items()): + if len(segdata["tags"]) == 0: + continue print("seg %s" % segname, file=f) for bitname in sorted(segdata["bits"]): print("bit %s" % bitname, file=f) diff --git a/htmlgen/htmlgen.py b/htmlgen/htmlgen.py index 937c249c..c395afb4 100644 --- a/htmlgen/htmlgen.py +++ b/htmlgen/htmlgen.py @@ -123,7 +123,7 @@ for segtype in segbits.keys(): print("", file =f) print("%d" % bitidx, file =f) for frameidx in range(segframes[segtype]): - bit_pos = "%02x_%02x_%02x" % (frameidx, bitidx // 32, bitidx % 32) + bit_pos = "%02d_%02d" % (frameidx, bitidx) bit_name = segbits_r[segtype][bit_pos] if bit_pos in segbits_r[segtype] else None label = " " diff --git a/tools/Makefile b/tools/Makefile index 18d4ad20..2a7b7a7e 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -5,10 +5,10 @@ CXXFLAGS = -Wall -Wextra -O3 all: bitread segmatch bitread: bitread.cc - clang $(CXXFLAGS) -static -std=c++11 -o $@ $< -lstdc++ + clang $(CXXFLAGS) -std=c++11 -o $@ $< -lstdc++ segmatch: segmatch.cc - clang $(CXXFLAGS) -static -std=c++11 -o $@ $< -lstdc++ + clang $(CXXFLAGS) -std=c++11 -o $@ $< -lstdc++ clean: rm -f bitread segmatch diff --git a/tools/bitread.cc b/tools/bitread.cc index 6cb245ab..eb1672aa 100644 --- a/tools/bitread.cc +++ b/tools/bitread.cc @@ -289,10 +289,10 @@ help: fprintf(stderr, " skip zero frames (frames with all bits cleared) in outout\n"); fprintf(stderr, "\n"); fprintf(stderr, " -x\n"); - fprintf(stderr, " use format 'bit_%%08x_%%02x_%%02x_t%%d_h%%d_r%%d_c%%d_m%%d_w%%d_b%%d'\n"); + fprintf(stderr, " use format 'bit_%%08x_%%03d_%%02d_t%%d_h%%d_r%%d_c%%d_m%%d'\n"); fprintf(stderr, "\n"); fprintf(stderr, " -y\n"); - fprintf(stderr, " use format 'bit_%%08x_%%02x_%%02x'\n"); + fprintf(stderr, " use format 'bit_%%08x_%%03d_%%02d'\n"); fprintf(stderr, "\n"); fprintf(stderr, " -p\n"); fprintf(stderr, " output a binary netpgm image\n"); @@ -311,15 +311,13 @@ help: fprintf(stderr, "\n"); fprintf(stderr, "In -x format the fields have the following meaning:\n"); fprintf(stderr, " - complete 32 bit hex frame id\n"); - fprintf(stderr, " - hex word index within that frame\n"); - fprintf(stderr, " - hex bit index within that word\n"); + fprintf(stderr, " - word index with that frame (decimal)\n"); + fprintf(stderr, " - bit index with that word (decimal)\n"); fprintf(stderr, " - decoded frame type from frame id\n"); fprintf(stderr, " - decoded top/botttom from frame id (top=0)\n"); fprintf(stderr, " - decoded row address from frame id\n"); fprintf(stderr, " - decoded column address from frame id\n"); fprintf(stderr, " - decoded minor address from frame id\n"); - fprintf(stderr, " - word index with that frame (decimal)\n"); - fprintf(stderr, " - bit index with that word (decimal)\n"); fprintf(stderr, "\n"); return 1; } @@ -575,11 +573,11 @@ help: for (int k = 0; k < 32; k++) if ((i != 50 || chksum) && ((it.second.at(i) & (1 << k)) != 0)) { if (mode_x) - fprintf(f, "bit_%08x_%02x_%02x_t%d_h%d_r%d_c%d_m%d_w%d_b%d\n", + fprintf(f, "bit_%08x_%03d_%02d_t%d_h%d_r%d_c%d_m%d\n", fid.get_value(), i, k, fid.get_type(), fid.get_topflag(), fid.get_rowaddr(), - fid.get_coladdr(), fid.get_minor(), i, k); + fid.get_coladdr(), fid.get_minor()); else - fprintf(f, "bit_%08x_%02x_%02x\n", fid.get_value(), i, k); + fprintf(f, "bit_%08x_%03d_%02d\n", fid.get_value(), i, k); } if (outfile == nullptr) fprintf(f, "\n");