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,586 of 131,241   
   Stephen Fuld to BGB   
   Re: Concedtina III May Be Returning   
   04 Sep 25 21:41:29   
   
   From: sfuld@alumni.cmu.edu.invalid   
      
   On 9/4/2025 7:53 PM, BGB wrote:   
   > On 9/4/2025 3:20 PM, Stephen Fuld wrote:   
   >> On 9/4/2025 12:06 PM, EricP wrote:   
   >>> Stephen Fuld wrote:   
   >>>> On 9/4/2025 10:19 AM, EricP wrote:   
   >>>>> BGB wrote:   
   >>>>>> On 9/3/2025 9:42 PM, EricP wrote:   
   >>>>>>> MitchAlsup wrote:   
   >>>>>>>>   
   >>>>>>>> However, I also found that STs need an immediate and a   
   >>>>>>>> displacement, so,   
   >>>>>>>> Major == 0b'001001 and minor == 0b'011xxx has 4 ST instructions   
   >>>>>>>> with   
   >>>>>>>> potential displacement (from D12ds above) and the immediate has   
   >>>>>>>> the size of the ST. This provides for::   
   >>>>>>>>          std    #4607182418800017408,[r3,r2<<3,96]   
   >>>>>>>   
   >>>>>>> Compare and Branch can also use two immediates as it   
   >>>>>>> has reg-reg or reg-imm compares plus displacement.   
   >>>>>>> And has high enough frequency to be worth considering.   
   >>>>>>>   
   >>>>>>   
   >>>>>> Can be done, yes.   
   >>>>>>   High enough frequency/etc, is where the possible debate lies.   
   >>>>>>   
   >>>>>>   
   >>>>>> Checking stats, it can effect roughly 1.9% of the instructions.   
   >>>>>> Or, around 11% of branches; most of the rest being unconditional   
   >>>>>> or comparing against 0 (which can use the Zero Register). Only a   
   >>>>>> relative minority being compares against non-zero constants.   
   >>>>>   
   >>>>> The only instruction usage stats I have are from those VAX papers:   
   >>>>> A Case Study of VAX-11 Instruction Set Usage For Compiler   
   >>>>> Execution, 1982   
   >>>>>   
   >>>>> That shows about 12% instructions are conditional branch and 9% CMP.   
   >>>>> That says to me that almost all Bcc are paired with a CMP,   
   >>>>> and very few use the flags set as a side effect of ALU ops.   
   >>>>   
   >>>> OK, but does this tell you how many of the CMPs are to a value of   
   >>>> zero? I expect these to be a significant enough percentage to skew   
   >>>> your analysis.   
   >>>   
   >>> Looking at   
   >>> Measurement and Analysis of Instruction Use in VAX 780, 1982   
   >>>   
   >>> VAX had a TST instruction which was the same as CMP src,#0.   
   >>> TST has < 2% usage while CMP 10-12%.   
   >>   
   >> Thanks.  That's interesting.  So perhaps ~15% of all compares are to   
   >> zero.  I would have expected higher.   
   >>   
   >   
   > Looking at some stats generated by my compiler (for branches):   
   >   61% of branches are unconditional   
   >   15% are comparing to 0   
   >   13% are comparing two registers   
   >   11% are comparing to some other non-zero constant.   
   >   
      
   So  ~39% of branches are conditional, and 15% compare to zero.  So   
   (15/39) ~38% of conditional branches are comparing to zero.  That is   
   more in line with what I had expected.   
      
      
      
   --   
     - Stephen Fuld   
   (e-mail address disguised to prevent spam)   
      
   --- 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