Commit Graph

57 Commits

Author SHA1 Message Date
Michael C. Martin
f8bc917601 A new 'correctness optimization': ExtendBranches.
This pass actually isn't an optimizer in that it produces larger
binaries when it triggers. However, the larger binaries created
will actually assemble properly.

The ExtendBranches pass detects Relative instructions (that is,
branches) that extend past the signed-8-bit range Relative instructions
permit, and replaces them with a branch-jump combination with identical
semantics.

Since this may be evidence of a program bug, Ophis will warn when
the optimization is triggered.

Due to similarities between this pass and UpdateLabels, both passes
have been refactored in passing.
2012-05-27 15:57:23 -07:00
Michael C. Martin
c1c102291c Remove the deprecated and incomplete compatibility mode for Perl65. 2012-05-27 15:57:10 -07:00
Cat's Eye Technologies
b843ba9ba9 Have .incbin take an optional offset and length for source bytes. 2012-05-08 18:12:28 -05:00
Michael C. Martin
1df8ad465d Major formatting fixes:
* No more tabs
 * Fix copyright notices to point at right files and name the license right
2012-05-06 20:06:28 -07:00
Michael C. Martin
d5ec7bdacd A simple distutils wrapper to make ophis a standalone program on a system. 2012-05-06 18:20:47 -07:00
Cat's Eye Technologies
a1cc6db760 Catch IOError in .incbin and .charmapbin pragmas. 2011-12-09 14:24:12 -06:00
Michael C. Martin
2c8dba2450 Initial import of the Ophis 1.0 distribution and supplemental material 2011-08-20 16:33:25 -07:00