<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 25/06/2018 05:23, J. Gareth Moreton
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:5587.1529896980@web-cluster.fastnet.co.uk">
      <style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>Actually
      you're right - that is the fastest method (it's written O(1), by
      the way, if it doesn't depend on n).  The drawback is that the
      large majority of instructions don't have such an optimisation
      procedure, so the table  would be extremely sparse.  There are
      1,109 individual instructions on x86 that FPC currently supports. 
      Come to think of it, even that is not too bad as far as memory
      goes - you're looking at 8,872 bytes on i386 (4 bytes for the
      instruction and 4 bytes for a pointer) and 17,744 bytes on x86-64
      (8 bytes for each field), both are potentially cacheable on the
      CPU hence won't be too costly in regards to looking it up.  Not
      sure why I overlooked that one.  Thanks Martin.<br>
    </blockquote>
    <br>
    While probably not worth it, but if you want to save memory (and
    only few entries have data): Use 2 maps:<br>
    <br>
    map1: array[opcode] of byte; // I do not know how efficient reading
    bytes is....<br>
          maps the (hopefully fewer than 255 active entries)<br>
    <br>
    map2: array[byte] of codepointer<br>
    <br>
    <br>
  </body>
</html>