summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2006-03-15 22:39:14 +0000
committerDave Chapman <dave@dchapman.com>2006-03-15 22:39:14 +0000
commit318953334b6252d2c3bc583eb0320f04567c18ba (patch)
treec7465e2d15030e934ab4a6a88019a30489f7747f /apps/plugins
parent211d827c0a29083d96e0432c6965d8f3d59a9884 (diff)
downloadrockbox-318953334b6252d2c3bc583eb0320f04567c18ba.zip
rockbox-318953334b6252d2c3bc583eb0320f04567c18ba.tar.gz
rockbox-318953334b6252d2c3bc583eb0320f04567c18ba.tar.bz2
rockbox-318953334b6252d2c3bc583eb0320f04567c18ba.tar.xz
Another optimisation from Fredrik Öhrn - put the Z80 registers and some lookup tables in IRAM. Gives a significant boost on Coldfire targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9053 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/pacbox/z80.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/apps/plugins/pacbox/z80.c b/apps/plugins/pacbox/z80.c
index b489682..dace7b1 100644
--- a/apps/plugins/pacbox/z80.c
+++ b/apps/plugins/pacbox/z80.c
@@ -28,7 +28,7 @@
#include "z80_internal.h"
// Table with parity, sign and zero flags precomputed for each byte value
-unsigned char PSZ_[256] = {
+unsigned char PSZ_[256] IDATA_ATTR = {
Zero|Parity, 0, 0, Parity, 0, Parity, Parity, 0, 0, Parity, Parity, 0, Parity, 0, 0, Parity,
0, Parity, Parity, 0, Parity, 0, 0, Parity, Parity, 0, 0, Parity, 0, Parity, Parity, 0,
0, Parity, Parity, 0, Parity, 0, 0, Parity, Parity, 0, 0, Parity, 0, Parity, Parity, 0,
@@ -76,33 +76,33 @@ void do_opcode_xy( OpcodeInfo * );
/** */
unsigned do_opcode_xycb( unsigned xy );
-unsigned iflags_; // Interrupt mode (bits 0 and 1) and flags
-unsigned cycles_; // Number of CPU cycles elapsed so far
+unsigned iflags_ IBSS_ATTR; // Interrupt mode (bits 0 and 1) and flags
+unsigned cycles_ IBSS_ATTR; // Number of CPU cycles elapsed so far
// Registers
-unsigned char B; //@- B register
-unsigned char C; //@- C register
-unsigned char D; //@- D register
-unsigned char E; //@- E register
-unsigned char H; //@- H register
-unsigned char L; //@- L register
-unsigned char A; //@- A register (accumulator)
-unsigned char F; //@- Flags register
-unsigned char B1; //@- Alternate B register (B')
-unsigned char C1; //@- Alternate C register (C')
-unsigned char D1; //@- Alternate D register (D')
-unsigned char E1; //@- Alternate E register (E')
-unsigned char H1; //@- Alternate H register (H')
-unsigned char L1; //@- Alternate L register (L')
-unsigned char A1; //@- Alternate A register (A')
-unsigned char F1; //@- Alternate flags register (F')
-unsigned IX; //@- Index register X
-unsigned IY; //@- Index register Y
-unsigned PC; //@- Program counter
-unsigned SP; //@- Stack pointer
-unsigned char I; //@- Interrupt register
-unsigned char R; //@- Refresh register
+unsigned char B IBSS_ATTR; //@- B register
+unsigned char C IBSS_ATTR; //@- C register
+unsigned char D IBSS_ATTR; //@- D register
+unsigned char E IBSS_ATTR; //@- E register
+unsigned char H IBSS_ATTR; //@- H register
+unsigned char L IBSS_ATTR; //@- L register
+unsigned char A IBSS_ATTR; //@- A register (accumulator)
+unsigned char F IBSS_ATTR; //@- Flags register
+unsigned char B1 IBSS_ATTR; //@- Alternate B register (B')
+unsigned char C1 IBSS_ATTR; //@- Alternate C register (C')
+unsigned char D1 IBSS_ATTR; //@- Alternate D register (D')
+unsigned char E1 IBSS_ATTR; //@- Alternate E register (E')
+unsigned char H1 IBSS_ATTR; //@- Alternate H register (H')
+unsigned char L1 IBSS_ATTR; //@- Alternate L register (L')
+unsigned char A1 IBSS_ATTR; //@- Alternate A register (A')
+unsigned char F1 IBSS_ATTR; //@- Alternate flags register (F')
+unsigned IX IBSS_ATTR; //@- Index register X
+unsigned IY IBSS_ATTR; //@- Index register Y
+unsigned PC IBSS_ATTR; //@- Program counter
+unsigned SP IBSS_ATTR; //@- Stack pointer
+unsigned char I IBSS_ATTR; //@- Interrupt register
+unsigned char R IBSS_ATTR; //@- Refresh register
/** Returns the 16 bit register BC. */