home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.arch      Apparently more than just beeps & boops      131,241 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 129,550 of 131,241   
   BGB to John Savard   
   Re: Concedtina III May Be Returning (2/2   
   31 Aug 25 13:12:52   
   
   [continued from previous message]   
      
      iiii-iiii-iiii-iiii-zzzz-0jjj-jj11-1111  //Jumbo Prefix (Imm, Typical)   
        Extends Imm10 to Imm33, leaves 4 bits for sub-operation.   
        If prefix is used with a Reg5 op, extend reg fields to 6-bit.   
      
   Keeping register fields consistent helps with superscalar. It more   
   matters here that the low order bits remain in the same place.   
      
   Keeping immediate fields consistent helps with "everything not being a   
   massive pain". I would assume all normal 3RI immediate and displacement   
   instructions have the same size and layout of immediate. However,   
   depending on instruction it may change scale. As I see it, scale   
   changing is preferable to bit-slicing though.   
      
      
   While less elegant to have a mix of 5 and 6 bit register encodings,   
   doing so could be more economical regarding the use of encoding space   
   compared with purely 6 bit (while being less limiting compared with pure   
   5 bit).   
      
   Possibly, one could have a semi-split space where, say:   
      R0..R31 are primarily integer registers;   
      R32..R63 are primarily FPU and SIMD registers;   
      A lot of core operations have access to the entire register space;   
      Non-core operations might be specific to the low or high 32;   
      SIMD-128 ops could use 5b register fields,   
        but still have the full register space   
      
      
   The semi-split scheme could work well in medium to low register pressure   
   scenarios; with 6-bit core ops helping with high register pressure.   
      
   Likely, at least, all the Load/Store and basic ALU operations need Reg6.   
      
      
   Not having 16-bit ops could simplify implementation slightly and also   
   allow better performance with a simpler implementation. One other option   
   being to allow 16 bit ops, but with the caveat that using them may   
   reduce performance (with the compiler ideally keeping performance   
   optimized using primarily 32-bit encodings wherever possible, and   
   maintaining a 32-bit alignment of the instruction stream).   
      
   Where, in such a case, 16-bit ops could be left either for low-traffic   
   code or for size optimized binaries.   
      
   ...   
      
      
   Though, more elegant (and possibly also highest performance) could be to   
   just go for 32/64/96 bit instructions with 6-bit register fields (also,   
   any lower-probability ops can use 64-bit encodings; though, at the cost   
   of code density).   
      
      
   Just another random pull here...   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca