Imager::Expr::Assem(3pm) | User Contributed Perl Documentation | Imager::Expr::Assem(3pm) |
NAME¶
Imager::Expr::Assem - an assembler for producing code for the Imager register machine
SYNOPSIS¶
use Imager::Expr::Assem; my $expr = Imager::Expr->new(assem=>'...', ...)
DESCRIPTION¶
This module is a simple Imager::Expr compiler that compiles a low-level language that has a nearly 1-to-1 relationship to the internal representation used for compiled register machine code.Syntax¶
Each line can contain multiple statements separated by semi-colons. Anything after '#' in a line is ignored. Types of statements:- variable definition
"var" name:type
- operators
- Operators can be split into 3 basic types, those that have
a result value, those that don't and the null operator, eg. jump has no
value.
result = operator operand
...
operator operand
result = operator
BUGS¶
Note that the current optimizer may produce incorrect optimization for your code, fortunately the optimizer will disable itself if you include any jump operator in your code. A single jump to anywhere after your final "ret" operator can be used to disable the optimizer without slowing down your code. There's currently no high-level code generation that can generate code with loops or real conditions.SEE ALSO¶
Imager(3), transform.perl, regmach.cAUTHOR¶
Tony Cook <tony@develop-help.com>2011-06-06 | perl v5.14.2 |