home bbs files messages ]

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

   alt.os.development      Operating system development chatter      4,255 messages   

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

   Message 3,433 of 4,255   
   mutazilah@gmail.com to Joe Monk   
   Re: segmentation   
   11 Nov 22 21:58:54   
   
   From: muta...@gmail.com   
      
   On Friday, November 11, 2022 at 7:19:04 PM UTC+8, Joe Monk wrote:   
   > "The following instructions leave bits 0-31 of a general register unchanged   
   in the 24-bit or 31-bit addressing mode but place or update address or length   
   information in them in the 64-bit addressing mode:   
   >   
   > BRANCH AND LINK (BAL, BALR)   
   > BRANCH AND SAVE (BAS, BASR)   
   > LOAD ADDRESS   
   >   
   > Bits 0-31 of general registers are changed by three types of instructions.   
   The first type is a modal instruction, as listed in the preceding note, when   
   the instruction is executed in the 64-bit addressing mode...   
   >   
   > So, when you are on a z/Arch box, in AMODE 64, and you execute a BALR, BASR,   
   or LA, you operate on 64 bits, in a 64 bit register, using a 64 bit address.   
      
   All correct.   
      
   Just as when my 32bit application is running on a S/370 it   
   is using a 24 bit address.   
      
   > It gets even better on a newer z/Arch machine (z14 up) because they cannot   
   be IPL'd in anythiing but AMODE 64 (I.e. no ESA/390). So as soon as you   
   execute:   
   >   
   > BALR R12,0   
   > USING *,R12   
   >   
   > You have just established 64-bit addressing. Looking at your code:   
   >   
   > * Start of our own, somewhat normal, code. Registers are not   
   > * defined at this point, so we need to create our own base   
   > * register.   
   > *   
   > POSTIPL DS 0H   
   > BALR R12,0   
   > LA R12,0(R12)   
   > BCTR R12,0   
   > BCTR R12,0   
   > USING POSTIPL,R12   
   > USING PSA,R0   
      
   I'm talking about my applications, not my OS.   
      
   But regardless, my applications use BALR too, so the   
   main thrust of your argument is unchanged.   
      
   My 32-bit programs don't care if address bits are or aren't being   
   masked.   
      
   And they don't care if there are more than 32 address bits   
   being operated on, so long as someone has gone to the effort of   
   carefully initializing them, typically to 0, but under 64-bit   
   pdos-generic, other numbers will be carefully put into the high   
   32 bits of each register, before calling   
   THE 32-BIT APPLICATION.   
      
   BFN. Paul.   
      
   --- 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