home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.amiga.programmer
- Path: sparky!uunet!ukma!gatech!news.byu.edu!ux1!fcom.cc.utah.edu!val
- From: val@news.ccutah.edu (Val Kartchner)
- Subject: 680x0 register usage on Amiga?
- Message-ID: <1993Jan27.214002.23569@fcom.cc.utah.edu>
- Summary: Question: What are (preallocated) purposes of 680x0 registers on Amiga?
- Sender: news@fcom.cc.utah.edu
- Organization: University of Utah Computer Center
- X-Newsreader: Tin 1.1 PL3
- Date: Wed, 27 Jan 93 21:40:02 GMT
- Lines: 29
-
-
- I usually program the Amiga in C. When I want to get the maximum speed in
- a core routine, I go to assembly language. However, I'm not sure which
- CPU registers are allocated and which are free for me to use when programming.
- Here is the list as I understand it:
-
- D0 Integer return value
- D1 Scratch register (need not be restored)
- D2-D7 Static registers (restore to values at entry)
- A0 Address return value
- A1 Scratch register
- A2-A3 Static registers
- A4 Base pointer (Points to base of global data)
- A5 Frame pointer (Contains old stack pointer)
- A6 Library base pointer (MUST be set to base of library
- when calling library routines)
- A7 Stack pointer
- CCR Scratch register (Condition Code Register is not restored)
-
- Is this correct? Please correct any terminology misusages that I may have
- made.
-
- Thanks in advance,
- -=:[ VAL ]:=-
- --
- |================== #include <disclaimer.h> ==================///=============|
- | "AMIGA: The computer for the creative mind" (tm) Commodore /// Weber State |
- | "Macintosh: The computer for the rest of us"(tm) Apple \\\/// University |
- |== "I think, therefore I AMiga" -- val@csulx.weber.edu ==\///= Ogden UT USA =|
-