Newlines at the end of each file to help concatenation
This commit is contained in:
parent
1b6f8970e1
commit
2b0ed9aa12
19 changed files with 22 additions and 18 deletions
2
01.md
2
01.md
|
|
@ -838,4 +838,4 @@ be sped up.
|
|||
I'm going to focus on specific ways to create high-performance code from
|
||||
now on. In Chapter 5, we'll continue to look at restartable blocks and
|
||||
internal buffering, in the form of a program that searches files for
|
||||
text strings.
|
||||
text strings.
|
||||
|
|
|
|||
2
02.md
2
02.md
|
|
@ -325,4 +325,4 @@ With that in mind, what should the first step be? Development of the
|
|||
flexible mind is an obvious step. Still, the flexible mind is no better
|
||||
than the knowledge at its disposal. The first step in the journey toward
|
||||
mastering optimization at that exalted level, then, would seem to be
|
||||
learning how to learn.
|
||||
learning how to learn.
|
||||
|
|
|
|||
2
03.md
2
03.md
|
|
@ -2263,4 +2263,4 @@ periods.
|
|||
|
||||
Imperfections notwithstanding, the Zen timer is a good tool for
|
||||
exploring C code and x86 family assembly language, and it's a tool we'll
|
||||
use frequently for the remainder of this book.
|
||||
use frequently for the remainder of this book.
|
||||
|
|
|
|||
2
04.md
2
04.md
|
|
@ -1462,4 +1462,4 @@ cycle-eaters vary in importance on later x86-family processors, with
|
|||
some cycle-eaters vanishing altogether and new ones appearing, the
|
||||
concept that understanding these obscure gremlins is a key to
|
||||
performance remains unchanged, as we'll see again and again in later
|
||||
chapters.
|
||||
chapters.
|
||||
|
|
|
|||
2
05.md
2
05.md
|
|
@ -552,4 +552,4 @@ itself with greatly improved performance. And when speed is *not* an
|
|||
issue, of course, or in code that's not time-critical, you wouldn't
|
||||
dream of wasting your time on optimization.
|
||||
|
||||
Would you?
|
||||
Would you?
|
||||
|
|
|
|||
2
06.md
2
06.md
|
|
@ -321,4 +321,4 @@ cycles is a pretty neat trick, even though it works only on a 386 or
|
|||
|
||||
I'd like to extend my thanks to Duane Strong of Metagraphics for his
|
||||
help in brainstorming uses for the 386 version of `LEA` and for
|
||||
pointing out the complications of 486 instruction timings.
|
||||
pointing out the complications of 486 instruction timings.
|
||||
|
|
|
|||
2
07.md
2
07.md
|
|
@ -685,4 +685,4 @@ ADD AX,1
|
|||
ADC DX,0
|
||||
```
|
||||
|
||||
As always, pay attention!
|
||||
As always, pay attention!
|
||||
|
|
|
|||
2
08.md
2
08.md
|
|
@ -809,4 +809,4 @@ the low end, resulting in critical code that runs just about as fast as
|
|||
the hardware permits. The only software that can do that is located
|
||||
north of your sternum and slightly aft of your nose. Dust it off and put
|
||||
it to work—and your code will never again be confused with anything by
|
||||
Hamilton, Joe, Frank, eynolds or Bo Donaldson and the Heywoods.
|
||||
Hamilton, Joe, Frank, eynolds or Bo Donaldson and the Heywoods.
|
||||
|
|
|
|||
2
09.md
2
09.md
|
|
@ -993,4 +993,4 @@ Be warned, though, that I've found `OR`, `AND`, `ADD`, and the like to be
|
|||
a cycle slower than `MOV` when working with immediate operands on the
|
||||
386 under some circumstances, for reasons that thus far escape me. This
|
||||
just reinforces the first rule of optimization: Measure your code in
|
||||
action, and place not your trust in documented cycle times.
|
||||
action, and place not your trust in documented cycle times.
|
||||
|
|
|
|||
2
10.md
2
10.md
|
|
@ -558,4 +558,4 @@ breakthroughs. Stop, look, listen—and think. Not only will you find that
|
|||
it's a more productive and creative way to program—but you'll also find
|
||||
that it's more fun.
|
||||
|
||||
And think what you could do with all those extra computer years!
|
||||
And think what you could do with all those extra computer years!
|
||||
|
|
|
|||
2
11.md
2
11.md
|
|
@ -1100,4 +1100,4 @@ it occurs.)
|
|||
|
||||
And now you know the nature of and the workaround for the `POPF` bug.
|
||||
Whether you ever need the workaround or not, it's a neatly packaged
|
||||
example of the tremendous flexibility of the x86 instruction set.
|
||||
example of the tremendous flexibility of the x86 instruction set.
|
||||
|
|
|
|||
2
12.md
2
12.md
|
|
@ -638,4 +638,4 @@ staggeringly fast that carefully crafted 486 code can do more than twice
|
|||
as much per cycle as the best 386 code—which makes it perhaps 50 times
|
||||
as fast as optimized code for the original PC.
|
||||
|
||||
Sometimes it *is* hard to believe we're still in Kansas!
|
||||
Sometimes it *is* hard to believe we're still in Kansas!
|
||||
|
|
|
|||
2
13.md
2
13.md
|
|
@ -467,4 +467,4 @@ capabilities of the Mod-R/M byte, and there's nothing to be done about
|
|||
it, but it's at least worth noting that ESP-based, non-indexed
|
||||
addressing makes for instructions that are a byte larger than other
|
||||
non-indexed addressing (but not any slower; there's no 1-cycle penalty
|
||||
for using ESP as a base register) on the 486.
|
||||
for using ESP as a base register) on the 486.
|
||||
|
|
|
|||
2
14.md
2
14.md
|
|
@ -807,4 +807,4 @@ Everything we needed was sitting there all along; we just needed to
|
|||
think to look at it.
|
||||
|
||||
As Yogi Berra might put it, "You don't know what you know until you know
|
||||
it."
|
||||
it."
|
||||
|
|
|
|||
2
15.md
2
15.md
|
|
@ -656,4 +656,4 @@ around: ja save
|
|||
Before I end this chapter, let me say that I get a lot of feedback from
|
||||
my readers, and it's much appreciated. Keep those cards, letters, and
|
||||
email messages coming. And if any of you know Jeannie Schweigert, have
|
||||
her drop me a line and let me know how she's doing these days....
|
||||
her drop me a line and let me know how she's doing these days....
|
||||
|
|
|
|||
2
16.md
2
16.md
|
|
@ -1252,4 +1252,4 @@ that calculates the theoretical maximum performance of native 386
|
|||
word-counting code at 5.5 cycles/byte, which would be significantly
|
||||
faster than David's code. Terry, alas, didn't bother to implement his
|
||||
design, but maybe I'll take a shot at it someday. It'd be fun, for
|
||||
sure—but jeez, I've got *real* work to do!
|
||||
sure—but jeez, I've got *real* work to do!
|
||||
|
|
|
|||
2
17.md
2
17.md
|
|
@ -1288,4 +1288,4 @@ for adherence to the rules, read, compiled, linked, run, and judged. I
|
|||
learned a lot—about a lot of things, not the least of which was the
|
||||
process (or maybe the wisdom) of laying down challenges to readers.
|
||||
|
||||
Who won? What did I learn? To find out, read on.
|
||||
Who won? What did I learn? To find out, read on.
|
||||
|
|
|
|||
2
18.md
2
18.md
|
|
@ -1018,4 +1018,4 @@ my pleasure to meet, who, after looking over David's and Peter's
|
|||
entries, said, "This has been an eye-opening experience for me. I
|
||||
honestly thought I had the fastest possible approach." TANSTATFC.
|
||||
|
||||
There Ain't No Such Thing As the Fastest Code.
|
||||
There Ain't No Such Thing As the Fastest Code.
|
||||
|
|
|
|||
4
make-epub.sh
Executable file
4
make-epub.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
pandoc -S -o main.epub index.md intro.md about.md about_author.md \
|
||||
01.md 02.md 03.md 04.md 05.md 06.md 07.md 08.md 09.md 10.md
|
||||
Loading…
Reference in a new issue