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,182 of 131,241   
   EricP to MitchAlsup   
   Re: branch splitting   
   06 Nov 25 20:10:19   
   
   From: ThatWouldBeTelling@thevillage.com   
      
   MitchAlsup wrote:   
   > EricP  posted:   
   >   
   >> Anton Ertl wrote:   
   >>> EricP  writes:   
   >>>> Where this might be a problem is if the label variable was a   
   >>>> global symbol and the target labels were in other name spaces.   
   >>>> At that point it could treat it like a pointer to a function and   
   >>>> have to spill all live register variables to memory.   
   >>> Does the assigned goto support that?  What about regular goto and   
   >>> computed goto?   
   >>>   
   >>> - anton   
   >> I didn't mean to imply that it did.   
   >> As far as I remember, Fortran 77 does not allow it.   
   >> I never used later Fortrans.   
   >>   
   >> I hadn't given the dynamic branch topic any thought until you raised it   
   >> and this was just me working through the things a compiler might have   
   >> to deal with.   
   >>   
   >> I have written jump dispatch table code myself where the destinations   
   >> came from symbols external to the routine, but I had to switch to   
   >> inline assembler for this as MS C does not support goto variables,   
   >   
   > Oh sure it does--it is called Return-Oriented-Programming.   
   > You take the return address off the stack and insert your   
   > go-to label on the stack and then just return.   
   >   
   > Or you could do some "foul play" on a jumpbuf and longjump.   
   >   
   > {{Be careful not to shoot yourself in the foot.}}   
      
   Or worse... shoot yourself in the foot and then step in a cow pie.   
   I hate when that happens.   
      
   >> and it was up to me to make sure the registers were all handled correctly.   
   >>   
   >>   
   >>   
      
   --- 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