]> git.imager.perl.org - imager.git/blobdiff - lib/Imager/Regops.pm
rename font.c to fontft1.c, since it only does FT1 now
[imager.git] / lib / Imager / Regops.pm
index 644b8b5e49815fa3c58e108acb8f1bee4bbcbcec..1455c158a9e9beb8cc424710509bce4e1e572122 100644 (file)
@@ -55,362 +55,440 @@ use constant RBC_PRINT => 45;
 use constant RBC_RGBA => 46;
 use constant RBC_HSVA => 47;
 use constant RBC_ALPHA => 48;
-use constant RBC_OP_COUNT => 49;
+use constant RBC_LOG => 49;
+use constant RBC_EXP => 50;
+use constant RBC_DET => 51;
+use constant RBC_OP_COUNT => 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_OP_COUNT);
+@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 = (
-          'setp' => {
-                      'result' => 'p',
-                      'parms' => 1,
-                      'opcode' => 44,
-                      'func' => 0,
-                      'types' => 'p'
-                    },
-          'green' => {
-                       'result' => 'r',
-                       'parms' => 1,
-                       'opcode' => 23,
-                       'func' => 1,
-                       'types' => 'p'
-                     },
-          'abs' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 38,
-                     'func' => 1,
-                     'types' => 'r'
-                   },
-          'le' => {
-                    'result' => 'r',
-                    'parms' => 2,
-                    'opcode' => 29,
-                    'func' => 0,
-                    'types' => 'rr'
-                  },
-          'cos' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 11,
-                     'func' => 1,
-                     'types' => 'r'
-                   },
-          'not' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 37,
-                     'func' => 0,
-                     'types' => 'r'
-                   },
-          'ne' => {
-                    'result' => 'r',
-                    'parms' => 2,
-                    'opcode' => 34,
-                    'func' => 0,
-                    'types' => 'rr'
-                  },
-          'blue' => {
-                      'result' => 'r',
-                      'parms' => 1,
-                      'opcode' => 24,
-                      'func' => 1,
-                      'types' => 'p'
-                    },
-          'and' => {
-                     'result' => 'r',
-                     'parms' => 2,
-                     'opcode' => 35,
-                     'func' => 0,
-                     'types' => 'rr'
-                   },
-          'mult' => {
-                      'result' => 'r',
-                      'parms' => 2,
-                      'opcode' => 2,
-                      'func' => 0,
-                      'types' => 'rr'
-                    },
-          'rgba' => {
-                      'result' => 'p',
-                      'parms' => 4,
-                      'opcode' => 46,
-                      'func' => 1,
-                      'types' => 'rrrr'
-                    },
-          'pow' => {
-                     'result' => 'r',
-                     'parms' => 2,
-                     'opcode' => 5,
-                     'func' => 0,
-                     'types' => 'rr'
-                   },
-          'lt' => {
-                    'result' => 'r',
-                    'parms' => 2,
-                    'opcode' => 30,
-                    'func' => 0,
-                    'types' => 'rr'
-                  },
-          'mod' => {
-                     'result' => 'r',
-                     'parms' => 2,
-                     'opcode' => 4,
-                     'func' => 0,
-                     'types' => 'rr'
-                   },
-          'getp1' => {
-                       'result' => 'p',
-                       'parms' => 2,
-                       'opcode' => 15,
-                       'func' => 1,
-                       'types' => 'rr'
-                     },
-          'atan2' => {
-                       'result' => 'r',
-                       'parms' => 2,
-                       'opcode' => 12,
-                       'func' => 1,
-                       'types' => 'rr'
-                     },
-          'getp2' => {
-                       'result' => 'p',
-                       'parms' => 2,
-                       'opcode' => 16,
-                       'func' => 1,
-                       'types' => 'rr'
-                     },
-          'getp3' => {
-                       'result' => 'p',
-                       'parms' => 2,
-                       'opcode' => 17,
-                       'func' => 1,
-                       'types' => 'rr'
-                     },
-          'value' => {
-                       'result' => 'r',
-                       'parms' => 1,
-                       'opcode' => 18,
-                       'func' => 1,
-                       'types' => 'p'
-                     },
-          'subtractp' => {
-                           'result' => 'p',
-                           'parms' => 2,
-                           'opcode' => 9,
-                           'func' => 0,
-                           'types' => 'pp'
-                         },
-          'ge' => {
-                    'result' => 'r',
-                    'parms' => 2,
-                    'opcode' => 31,
-                    'func' => 0,
-                    'types' => 'rr'
-                  },
-          'sat' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 20,
-                     'func' => 1,
-                     'types' => 'p'
-                   },
-          'jump' => {
-                      'result' => undef,
-                      'parms' => 0,
-                      'opcode' => 40,
-                      'func' => 0,
-                      'types' => ''
-                    },
-          'if' => {
-                    'result' => 'r',
-                    'parms' => 3,
-                    'opcode' => 27,
-                    'func' => 1,
-                    'types' => 'rrr'
-                  },
-          'div' => {
-                     'result' => 'r',
-                     'parms' => 2,
-                     'opcode' => 3,
-                     'func' => 0,
-                     'types' => 'rr'
-                   },
-          'ifp' => {
-                     'result' => 'p',
-                     'parms' => 3,
-                     'opcode' => 28,
-                     'func' => 1,
-                     'types' => 'rpp'
-                   },
-          'set' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 43,
-                     'func' => 0,
-                     'types' => 'r'
-                   },
-          'eq' => {
-                    'result' => 'r',
-                    'parms' => 2,
-                    'opcode' => 33,
-                    'func' => 0,
-                    'types' => 'rr'
-                  },
-          'multp' => {
-                       'result' => 'p',
-                       'parms' => 2,
-                       'opcode' => 7,
-                       'func' => 0,
-                       'types' => 'pr'
-                     },
-          'sin' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 10,
-                     'func' => 1,
-                     'types' => 'r'
-                   },
-          'sqrt' => {
-                      'result' => 'r',
-                      'parms' => 1,
-                      'opcode' => 13,
-                      'func' => 1,
-                      'types' => 'r'
-                    },
-          'alpha' => {
-                       'result' => 'r',
-                       'parms' => 1,
-                       'opcode' => 48,
-                       'func' => 1,
-                       'types' => 'p'
-                     },
-          'distance' => {
-                          'result' => 'r',
-                          'parms' => 4,
-                          'opcode' => 14,
-                          'func' => 1,
-                          'types' => 'rrrr'
-                        },
-          'gt' => {
-                    'result' => 'r',
-                    'parms' => 2,
-                    'opcode' => 32,
-                    'func' => 0,
-                    'types' => 'rr'
-                  },
-          'red' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 22,
-                     'func' => 1,
-                     'types' => 'p'
-                   },
-          'rgb' => {
-                     'result' => 'p',
-                     'parms' => 3,
-                     'opcode' => 25,
-                     'func' => 1,
-                     'types' => 'rrr'
-                   },
-          'hue' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 19,
-                     'func' => 1,
-                     'types' => 'p'
-                   },
-          'hsva' => {
-                      'result' => 'p',
-                      'parms' => 4,
-                      'opcode' => 47,
-                      'func' => 1,
-                      'types' => 'rrrr'
-                    },
-          'print' => {
-                       'result' => undef,
-                       'parms' => 1,
-                       'opcode' => 45,
-                       'func' => 0,
-                       'types' => 'r'
-                     },
-          'jumpnz' => {
-                        'result' => undef,
-                        'parms' => 1,
-                        'opcode' => 42,
-                        'func' => 0,
-                        'types' => 'r'
-                      },
-          'addp' => {
-                      'result' => 'p',
-                      'parms' => 2,
-                      'opcode' => 8,
-                      'func' => 0,
-                      'types' => 'pp'
-                    },
-          'int' => {
-                     'result' => 'r',
-                     'parms' => 1,
-                     'opcode' => 26,
-                     'func' => 1,
-                     'types' => 'r'
-                   },
-          'op_count' => {
-                          'result' => undef,
-                          'parms' => 0,
-                          'opcode' => 49,
-                          'func' => 0,
-                          'types' => ''
-                        },
-          'or' => {
-                    'result' => 'r',
-                    'parms' => 2,
-                    'opcode' => 36,
-                    'func' => 0,
-                    'types' => 'rr'
-                  },
-          'jumpz' => {
-                       'result' => undef,
-                       'parms' => 1,
-                       'opcode' => 41,
-                       'func' => 0,
-                       'types' => 'r'
-                     },
-          'add' => {
-                     'result' => 'r',
-                     'parms' => 2,
-                     'opcode' => 0,
-                     'func' => 0,
-                     'types' => 'rr'
-                   },
-          'subtract' => {
-                          'result' => 'r',
-                          'parms' => 2,
-                          'opcode' => 1,
-                          'func' => 0,
-                          'types' => 'rr'
-                        },
-          'ret' => {
-                     'result' => undef,
-                     'parms' => 1,
-                     'opcode' => 39,
-                     'func' => 0,
-                     'types' => 'p'
-                   },
-          'hsv' => {
-                     'result' => 'p',
-                     'parms' => 3,
-                     'opcode' => 21,
-                     'func' => 1,
-                     'types' => 'rrr'
-                   },
-          'uminus' => {
-                        'result' => 'r',
-                        'parms' => 1,
-                        'opcode' => 6,
-                        'func' => 0,
-                        'types' => 'r'
-                      }
-        );
+%Attr =
+  (
+  'abs' =>
+    {
+    'func' => 1,
+    'opcode' => 38,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'add' =>
+    {
+    'func' => 0,
+    'opcode' => 0,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'addp' =>
+    {
+    'func' => 0,
+    'opcode' => 8,
+    'parms' => 2,
+    'result' => 'p',
+    'types' => 'pp',
+    },
+  'alpha' =>
+    {
+    'func' => 1,
+    'opcode' => 48,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'p',
+    },
+  'and' =>
+    {
+    'func' => 0,
+    'opcode' => 35,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'atan2' =>
+    {
+    'func' => 1,
+    'opcode' => 12,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'blue' =>
+    {
+    'func' => 1,
+    'opcode' => 24,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'p',
+    },
+  'cos' =>
+    {
+    'func' => 1,
+    'opcode' => 11,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'det' =>
+    {
+    'func' => 1,
+    'opcode' => 51,
+    'parms' => 4,
+    'result' => 'r',
+    'types' => 'rrrr',
+    },
+  'distance' =>
+    {
+    'func' => 1,
+    'opcode' => 14,
+    'parms' => 4,
+    'result' => 'r',
+    'types' => 'rrrr',
+    },
+  'div' =>
+    {
+    'func' => 0,
+    'opcode' => 3,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'eq' =>
+    {
+    'func' => 0,
+    'opcode' => 33,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'exp' =>
+    {
+    'func' => 1,
+    'opcode' => 50,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'ge' =>
+    {
+    'func' => 0,
+    'opcode' => 31,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'getp1' =>
+    {
+    'func' => 1,
+    'opcode' => 15,
+    'parms' => 2,
+    'result' => 'p',
+    'types' => 'rr',
+    },
+  'getp2' =>
+    {
+    'func' => 1,
+    'opcode' => 16,
+    'parms' => 2,
+    'result' => 'p',
+    'types' => 'rr',
+    },
+  'getp3' =>
+    {
+    'func' => 1,
+    'opcode' => 17,
+    'parms' => 2,
+    'result' => 'p',
+    'types' => 'rr',
+    },
+  'green' =>
+    {
+    'func' => 1,
+    'opcode' => 23,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'p',
+    },
+  'gt' =>
+    {
+    'func' => 0,
+    'opcode' => 32,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'hsv' =>
+    {
+    'func' => 1,
+    'opcode' => 21,
+    'parms' => 3,
+    'result' => 'p',
+    'types' => 'rrr',
+    },
+  'hsva' =>
+    {
+    'func' => 1,
+    'opcode' => 47,
+    'parms' => 4,
+    'result' => 'p',
+    'types' => 'rrrr',
+    },
+  'hue' =>
+    {
+    'func' => 1,
+    'opcode' => 19,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'p',
+    },
+  'if' =>
+    {
+    'func' => 1,
+    'opcode' => 27,
+    'parms' => 3,
+    'result' => 'r',
+    'types' => 'rrr',
+    },
+  'ifp' =>
+    {
+    'func' => 1,
+    'opcode' => 28,
+    'parms' => 3,
+    'result' => 'p',
+    'types' => 'rpp',
+    },
+  'int' =>
+    {
+    'func' => 1,
+    'opcode' => 26,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'jump' =>
+    {
+    'func' => 0,
+    'opcode' => 40,
+    'parms' => 0,
+    'result' => undef,
+    'types' => '',
+    },
+  'jumpnz' =>
+    {
+    'func' => 0,
+    'opcode' => 42,
+    'parms' => 1,
+    'result' => undef,
+    'types' => 'r',
+    },
+  'jumpz' =>
+    {
+    'func' => 0,
+    'opcode' => 41,
+    'parms' => 1,
+    'result' => undef,
+    'types' => 'r',
+    },
+  'le' =>
+    {
+    'func' => 0,
+    'opcode' => 29,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'log' =>
+    {
+    'func' => 1,
+    'opcode' => 49,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'lt' =>
+    {
+    'func' => 0,
+    'opcode' => 30,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'mod' =>
+    {
+    'func' => 0,
+    'opcode' => 4,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'mult' =>
+    {
+    'func' => 0,
+    'opcode' => 2,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'multp' =>
+    {
+    'func' => 0,
+    'opcode' => 7,
+    'parms' => 2,
+    'result' => 'p',
+    'types' => 'pr',
+    },
+  'ne' =>
+    {
+    'func' => 0,
+    'opcode' => 34,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'not' =>
+    {
+    'func' => 0,
+    'opcode' => 37,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'op_count' =>
+    {
+    'func' => 0,
+    'opcode' => 52,
+    'parms' => 0,
+    'result' => undef,
+    'types' => '',
+    },
+  'or' =>
+    {
+    'func' => 0,
+    'opcode' => 36,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'pow' =>
+    {
+    'func' => 0,
+    'opcode' => 5,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'print' =>
+    {
+    'func' => 1,
+    'opcode' => 45,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'red' =>
+    {
+    'func' => 1,
+    'opcode' => 22,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'p',
+    },
+  'ret' =>
+    {
+    'func' => 0,
+    'opcode' => 39,
+    'parms' => 1,
+    'result' => undef,
+    'types' => 'p',
+    },
+  'rgb' =>
+    {
+    'func' => 1,
+    'opcode' => 25,
+    'parms' => 3,
+    'result' => 'p',
+    'types' => 'rrr',
+    },
+  'rgba' =>
+    {
+    'func' => 1,
+    'opcode' => 46,
+    'parms' => 4,
+    'result' => 'p',
+    'types' => 'rrrr',
+    },
+  'sat' =>
+    {
+    'func' => 1,
+    'opcode' => 20,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'p',
+    },
+  'set' =>
+    {
+    'func' => 0,
+    'opcode' => 43,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'setp' =>
+    {
+    'func' => 0,
+    'opcode' => 44,
+    'parms' => 1,
+    'result' => 'p',
+    'types' => 'p',
+    },
+  'sin' =>
+    {
+    'func' => 1,
+    'opcode' => 10,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'sqrt' =>
+    {
+    'func' => 1,
+    'opcode' => 13,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'subtract' =>
+    {
+    'func' => 0,
+    'opcode' => 1,
+    'parms' => 2,
+    'result' => 'r',
+    'types' => 'rr',
+    },
+  'subtractp' =>
+    {
+    'func' => 0,
+    'opcode' => 9,
+    'parms' => 2,
+    'result' => 'p',
+    'types' => 'pp',
+    },
+  'uminus' =>
+    {
+    'func' => 0,
+    'opcode' => 6,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'r',
+    },
+  'value' =>
+    {
+    'func' => 1,
+    'opcode' => 18,
+    'parms' => 1,
+    'result' => 'r',
+    'types' => 'p',
+    },
+  );
 $MaxOperands = 4;
 $PackCode = "i";
 1;
@@ -419,7 +497,7 @@ __END__
 
 =head1 NAME
 
-Imager::Regops - generated information about the register based VM
+Imager::Regops - generated information about the register based virtual machine
 
 =head1 SYNOPSIS
 
@@ -433,7 +511,7 @@ Imager::Regops - generated information about the register based VM
 
 =head1 DESCRIPTION
 
-This module is generated automatically from regmach.h so we don't need to 
+This module is generated automatically from F<regmach.h> so we don't need to
 maintain the same information in at least one extra place.
 
 At least that's the idea.
@@ -444,7 +522,7 @@ Tony Cook, tony@develop-help.com
 
 =head1 SEE ALSO
 
-perl(1), Imager(3), http://www.eecs.umich.edu/~addi/perl/Imager/
+perl(1), Imager(3), http://imager.perl.org/
 
 =cut