<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># AUTOMATICALLY GENERATED BY regops.perl
package Imager::Regops;
use strict;
require Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK %Attr $MaxOperands $PackCode);
@ISA = qw(Exporter);
@EXPORT_OK = qw(%Attr $MaxOperands $PackCode);

use constant RBC_ADD =&gt; 0;
use constant RBC_SUBTRACT =&gt; 1;
use constant RBC_MULT =&gt; 2;
use constant RBC_DIV =&gt; 3;
use constant RBC_MOD =&gt; 4;
use constant RBC_POW =&gt; 5;
use constant RBC_UMINUS =&gt; 6;
use constant RBC_MULTP =&gt; 7;
use constant RBC_ADDP =&gt; 8;
use constant RBC_SUBTRACTP =&gt; 9;
use constant RBC_SIN =&gt; 10;
use constant RBC_COS =&gt; 11;
use constant RBC_ATAN2 =&gt; 12;
use constant RBC_SQRT =&gt; 13;
use constant RBC_DISTANCE =&gt; 14;
use constant RBC_GETP1 =&gt; 15;
use constant RBC_GETP2 =&gt; 16;
use constant RBC_GETP3 =&gt; 17;
use constant RBC_VALUE =&gt; 18;
use constant RBC_HUE =&gt; 19;
use constant RBC_SAT =&gt; 20;
use constant RBC_HSV =&gt; 21;
use constant RBC_RED =&gt; 22;
use constant RBC_GREEN =&gt; 23;
use constant RBC_BLUE =&gt; 24;
use constant RBC_RGB =&gt; 25;
use constant RBC_INT =&gt; 26;
use constant RBC_IF =&gt; 27;
use constant RBC_IFP =&gt; 28;
use constant RBC_LE =&gt; 29;
use constant RBC_LT =&gt; 30;
use constant RBC_GE =&gt; 31;
use constant RBC_GT =&gt; 32;
use constant RBC_EQ =&gt; 33;
use constant RBC_NE =&gt; 34;
use constant RBC_AND =&gt; 35;
use constant RBC_OR =&gt; 36;
use constant RBC_NOT =&gt; 37;
use constant RBC_ABS =&gt; 38;
use constant RBC_RET =&gt; 39;
use constant RBC_JUMP =&gt; 40;
use constant RBC_JUMPZ =&gt; 41;
use constant RBC_JUMPNZ =&gt; 42;
use constant RBC_SET =&gt; 43;
use constant RBC_SETP =&gt; 44;
use constant RBC_PRINT =&gt; 45;
use constant RBC_RGBA =&gt; 46;
use constant RBC_HSVA =&gt; 47;
use constant RBC_ALPHA =&gt; 48;
use constant RBC_LOG =&gt; 49;
use constant RBC_EXP =&gt; 50;
use constant RBC_DET =&gt; 51;
use constant RBC_OP_COUNT =&gt; 52;

@EXPORT = qw(RBC_ADD RBC_SUBTRACT RBC_MULT RBC_DIV RBC_MOD RBC_POW RBC_UMINUS RBC_MULTP RBC_ADDP RBC_SUBTRACTP RBC_SIN RBC_COS RBC_ATAN2 RBC_SQRT RBC_DISTANCE RBC_GETP1 RBC_GETP2 RBC_GETP3 RBC_VALUE RBC_HUE RBC_SAT RBC_HSV RBC_RED RBC_GREEN RBC_BLUE RBC_RGB RBC_INT RBC_IF RBC_IFP RBC_LE RBC_LT RBC_GE RBC_GT RBC_EQ RBC_NE RBC_AND RBC_OR RBC_NOT RBC_ABS RBC_RET RBC_JUMP RBC_JUMPZ RBC_JUMPNZ RBC_SET RBC_SETP RBC_PRINT RBC_RGBA RBC_HSVA RBC_ALPHA RBC_LOG RBC_EXP RBC_DET RBC_OP_COUNT);

%Attr =
  (
  'abs' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 38,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'add' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 0,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'addp' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 8,
    'parms' =&gt; 2,
    'result' =&gt; 'p',
    'types' =&gt; 'pp',
    },
  'alpha' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 48,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'p',
    },
  'and' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 35,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'atan2' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 12,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'blue' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 24,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'p',
    },
  'cos' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 11,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'det' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 51,
    'parms' =&gt; 4,
    'result' =&gt; 'r',
    'types' =&gt; 'rrrr',
    },
  'distance' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 14,
    'parms' =&gt; 4,
    'result' =&gt; 'r',
    'types' =&gt; 'rrrr',
    },
  'div' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 3,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'eq' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 33,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'exp' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 50,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'ge' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 31,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'getp1' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 15,
    'parms' =&gt; 2,
    'result' =&gt; 'p',
    'types' =&gt; 'rr',
    },
  'getp2' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 16,
    'parms' =&gt; 2,
    'result' =&gt; 'p',
    'types' =&gt; 'rr',
    },
  'getp3' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 17,
    'parms' =&gt; 2,
    'result' =&gt; 'p',
    'types' =&gt; 'rr',
    },
  'green' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 23,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'p',
    },
  'gt' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 32,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'hsv' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 21,
    'parms' =&gt; 3,
    'result' =&gt; 'p',
    'types' =&gt; 'rrr',
    },
  'hsva' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 47,
    'parms' =&gt; 4,
    'result' =&gt; 'p',
    'types' =&gt; 'rrrr',
    },
  'hue' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 19,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'p',
    },
  'if' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 27,
    'parms' =&gt; 3,
    'result' =&gt; 'r',
    'types' =&gt; 'rrr',
    },
  'ifp' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 28,
    'parms' =&gt; 3,
    'result' =&gt; 'p',
    'types' =&gt; 'rpp',
    },
  'int' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 26,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'jump' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 40,
    'parms' =&gt; 0,
    'result' =&gt; undef,
    'types' =&gt; '',
    },
  'jumpnz' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 42,
    'parms' =&gt; 1,
    'result' =&gt; undef,
    'types' =&gt; 'r',
    },
  'jumpz' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 41,
    'parms' =&gt; 1,
    'result' =&gt; undef,
    'types' =&gt; 'r',
    },
  'le' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 29,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'log' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 49,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'lt' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 30,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'mod' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 4,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'mult' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 2,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'multp' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 7,
    'parms' =&gt; 2,
    'result' =&gt; 'p',
    'types' =&gt; 'pr',
    },
  'ne' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 34,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'not' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 37,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'op_count' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 52,
    'parms' =&gt; 0,
    'result' =&gt; undef,
    'types' =&gt; '',
    },
  'or' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 36,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'pow' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 5,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'print' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 45,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'red' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 22,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'p',
    },
  'ret' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 39,
    'parms' =&gt; 1,
    'result' =&gt; undef,
    'types' =&gt; 'p',
    },
  'rgb' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 25,
    'parms' =&gt; 3,
    'result' =&gt; 'p',
    'types' =&gt; 'rrr',
    },
  'rgba' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 46,
    'parms' =&gt; 4,
    'result' =&gt; 'p',
    'types' =&gt; 'rrrr',
    },
  'sat' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 20,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'p',
    },
  'set' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 43,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'setp' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 44,
    'parms' =&gt; 1,
    'result' =&gt; 'p',
    'types' =&gt; 'p',
    },
  'sin' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 10,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'sqrt' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 13,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'subtract' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 1,
    'parms' =&gt; 2,
    'result' =&gt; 'r',
    'types' =&gt; 'rr',
    },
  'subtractp' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 9,
    'parms' =&gt; 2,
    'result' =&gt; 'p',
    'types' =&gt; 'pp',
    },
  'uminus' =&gt;
    {
    'func' =&gt; 0,
    'opcode' =&gt; 6,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'r',
    },
  'value' =&gt;
    {
    'func' =&gt; 1,
    'opcode' =&gt; 18,
    'parms' =&gt; 1,
    'result' =&gt; 'r',
    'types' =&gt; 'p',
    },
  );
$MaxOperands = 4;
$PackCode = "i";
1;

__END__

=head1 NAME

Imager::Regops - generated information about the register based virtual machine

=head1 SYNOPSIS

  use Imager::Regops;
  $Imager::Regops::Attr{$opname}-&gt;{opcode} # opcode for given operator
  $Imager::Regops::Attr{$opname}-&gt;{parms} # number of parameters
  $Imager::Regops::Attr{$opname}-&gt;{types} # types of parameters
  $Imager::Regops::Attr{$opname}-&gt;{func} # operator is a function
  $Imager::Regops::Attr{$opname}-&gt;{result} # r for numeric, p for pixel result
  $Imager::Regops::MaxOperands; # maximum number of operands

=head1 DESCRIPTION

This module is generated automatically from F&lt;regmach.h&gt; so we don't need to
maintain the same information in at least one extra place.

At least that's the idea.

=head1 AUTHOR

Tony Cook, tony@develop-help.com

=head1 SEE ALSO

perl(1), Imager(3), http://imager.perl.org/

=cut

</pre></body></html>