This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / Documentation / parisc / registers
index dd3cadd..08b9f55 100644 (file)
@@ -35,8 +35,8 @@ CR31 (TR 7)                   Temporary register, used in various places
 SR0                            temporary space register
 SR4-SR7                        set to 0
 SR1                            temporary space register
-SR2                            kernel should not clobber this
-SR3                            used for userspace accesses (current process)
+SR2                            unused
+SR3                            used for userspace accesses (current process)*
 
        Space Registers (user mode)
 
@@ -78,8 +78,13 @@ Shadow Registers             used by interruption handler code
 TOC enable bit                 1
 
 =========================================================================
-Register usage notes, originally from John Marvin, with some additional
-notes from Randolph Chung.
+Info from John Marvin:
+
+From: "John Marvin" <jsm@udlkern.fc.hp.com>
+To: randolf@tausq.org
+Subject: Re: parisc asm questions
+
+[...]
 
 For the general registers:
 
@@ -106,10 +111,9 @@ that you should be aware of:
        don't care about the values that were passed in anymore.
 
     r28,r29: are ret0 and ret1. They are what you pass return values
-       in. r28 is the primary return. When returning small structures
-       r29 may also be used to pass data back to the caller.
-
-    r30: stack pointer
+       in. r28 is the primary return. I'm not sure I remember
+       under what circumstances stuff is returned in r29 (millicode
+       perhaps).
 
     r31: the ble instruction puts the return pointer in here.
 
@@ -119,3 +123,6 @@ r3-r18,r27,r30 need to be saved and restored. r3-r18 are just
     used to make references to global variables easier. r30 is
     the stack pointer.
 
+John
+
+