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 130,168 of 131,241   
   MitchAlsup to All   
   Re: Tonights Tradeoff - constants / rout   
   06 Nov 25 18:39:55   
   
   From: user5857@newsgrouper.org.invalid   
      
   Stephen Fuld  posted:   
      
   > On 11/5/2025 1:21 PM, MitchAlsup wrote:   
   > >   
   > > Robert Finch  posted:   
   > >   
   > >> Qupls2026 currently supports 48-bit inline constants. I am debating   
   > >> whether to support 89 and 130-bit inline constants as well. Constant   
   > >> sizes increase by 41-bits due to the 48-bit instruction word size. The   
   > >> larger constants would require more instruction words to be available to   
   > >> be processed in decode. Not sure if it is even possible to pass a   
   > >> constant larger than 64-bits in the machine.   
   > >>   
   > >> I just realized that constant operand routing was already in Qupls, I   
   > >> had just not specifically identified it. The operand routing bits are   
   > >> just moved into a postfix instruction word rather than the first   
   > >> instruction word. This gives more bits available in the instruction   
   > >> word. Rather than burn a couple of bits in every R3 type instruction,   
   > >> another couple of opcodes are used to represent constant extensions.   
   > >>   
   > > My 66000 ISA has OpCodes in the range {I.major >= 8 && I.major < 24}   
   > > that can supply constants and perform operand routing. Within this   
   > > range; instruction<8:5> specify the following table:   
   > >   
   > > 0 0 0 0    +Src1    +Src2   
   > > 0 0 0 1    +Src1    -Src2   
   > > 0 0 1 0    -Src1    +Src2   
   > > 0 0 1 1    -Src1    -Src2   
   > > 0 1 0 0    +Src1    +imm5   
   > > 0 1 0 1    +Imm5    +Src2   
   > > 0 1 1 0    -Src1    -Imm5   
   > > 0 1 1 1    +Imm5    -Src2   
   > > 1 0 0 0    +Src1    Imm32   
   > > 1 0 0 1    Imm32    +Src2   
   > > 1 0 1 0    -Src1    Imm32   
   > > 1 0 1 1    Imm32    -Src2   
   > > 1 1 0 0    +Src1    Imm64   
   > > 1 1 0 1    Imm64    +Src2   
   > > 1 1 1 0    -Src1    Imm64   
   > > 1 1 1 1    Imm64    -Src2   
   > >   
   > > Here we have access to {5, 32, 64}-bit constants, 16-bit constants   
   > > come from different OpCodes.   
   > >   
   > > Imm5 are the register specifier bits: range {-31..31} for integer and   
   > > logical, range {-15.5..15.5} for floating point.   
   >   
   > Some time ago, we discussed using the 5 bit immediates in floating point   
   > instructions as an index to an internal ROM with frequently used   
   > constants.  The idea is that it would save some space in the instruction   
   > stream.  Are you implementing that, and if not, why not?   
      
   The constant ROM[specifier] seems to be the easiest way of taking   
   5-bits and converting it into a FP number. It was only a few weeks   
   ago that we changed the range from {-31..+31} to {-15.5..+15.5} as   
   this covers  more fp constant uses. In My case, one always   
   has access to larger constants at the same instruction-count price   
   just a larger code footprint.   
   >   
      
   --- 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