mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-28 10:02:43 +01:00
19e983380b
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
79 lines
2.2 KiB
Groff
79 lines
2.2 KiB
Groff
.\"Text automatically generated by txt2man
|
|
.TH copt 1 "01 December 2009" "" "z88 Development Kit"
|
|
.SH NAME
|
|
\fBcopt \fP- peephole optimizer
|
|
.SH SYSNOPIS
|
|
copt file \.\.\.
|
|
.SH DESCRIPTION
|
|
copt is a general-purpose peephole optimizer. It reads
|
|
code from its standard input and writes an improved version to its standard output.
|
|
copy reads the named files for its optimizations, which are encoded as follows:
|
|
.PP
|
|
.nf
|
|
.fam C
|
|
<pattern for input line 1>
|
|
<pattern for input line 2>
|
|
\.\.\.
|
|
<pattern for input line n>
|
|
=
|
|
<pattern for output line 1>
|
|
<pattern for output line 2>
|
|
\.\.\.
|
|
<pattern for output line m>
|
|
<blank line>
|
|
|
|
.fam T
|
|
.fi
|
|
Pattern matching uses literal string comparison, with one
|
|
exception: ``%%'' matches the ``%'' character, and ``%''
|
|
followed by a digit matches everything up to the next
|
|
occurrence of the next pattern character, though all
|
|
occurrences of %\fIn\fP must denote the same string. For example,
|
|
the pattern ``%1=%1.'' matches exactly those strings
|
|
that begin with a string X, followed by a ``='' (the
|
|
first), followed by a second occurrence of X, followed by
|
|
a period. In this way, the input/output pattern
|
|
.PP
|
|
.nf
|
|
.fam C
|
|
mov $%1,r%2
|
|
mov *r%2,r%2
|
|
=
|
|
mov %1,r%2
|
|
|
|
.fam T
|
|
.fi
|
|
commands copt to replace runs like
|
|
.PP
|
|
.nf
|
|
.fam C
|
|
mov $_a,r3
|
|
mov *r3,r3
|
|
|
|
.fam T
|
|
.fi
|
|
with
|
|
.PP
|
|
.nf
|
|
.fam C
|
|
mov _a,r3
|
|
|
|
.fam T
|
|
.fi
|
|
Note that a tab or newline can terminate a %\fBn\fP variable.
|
|
.PP
|
|
copt compares each run of input patterns with the current
|
|
input instruction and its predecessors. If no match is
|
|
found, it advances to the next input instruction and tries
|
|
again. Otherwise, it replaces the input instructions with
|
|
the corresponding output patterns, pattern variables
|
|
instantiated,and resumes its search with the \fIfirst\fP
|
|
instruction of the replacement. copt matches input patterns
|
|
in reverse order to cascade optimizations without
|
|
backing up.
|
|
.SH BUGS
|
|
Errors in optimization files are always possible.
|
|
.SH SEE ALSO
|
|
\fBz88dk\fP(1), \fBz88dk-zcc\fP(1), \fBz88dk-z80asm\fP(1), \fBz88dk-appmake\fP(1), \fBz88dk-copt\fP(1).
|
|
.SH AUTHOR
|
|
z88dk was written by Dominic Morris <dom@z88dk.org>, and others.
|