From: Alan Cox Date: Thu, 14 Dec 2017 13:43:52 +0000 (+0000) Subject: 6502/65c816: introduce a regptr hint X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=b4bec8ffb2503b1eeca408b8334e0ab0240511d7;p=FUZIX.git 6502/65c816: introduce a regptr hint We need this because cc65 writes *far* better code if you tell it to mark key structure pointers as register so it can then use zp based offset addressing on them --- diff --git a/Kernel/cpu-6502/cpu.h b/Kernel/cpu-6502/cpu.h index 009ad946..9c3ce28d 100644 --- a/Kernel/cpu-6502/cpu.h +++ b/Kernel/cpu-6502/cpu.h @@ -62,3 +62,6 @@ typedef union { /* this structure is endian dependent */ #define ntohs(x) ((((x) & 0xFF) << 8) | (((x) & 0xFF00) >> 8)) #define CPUTYPE CPUTYPE_6502 + +/* cc65 really wants register tags on struct pointers used repeatedly */ +#define regptr register diff --git a/Kernel/cpu-65c816/cpu.h b/Kernel/cpu-65c816/cpu.h index de24ec4d..e5820046 100644 --- a/Kernel/cpu-65c816/cpu.h +++ b/Kernel/cpu-65c816/cpu.h @@ -75,3 +75,6 @@ typedef union { /* this structure is endian dependent */ #define ntohs(x) ((((x) & 0xFF) << 8) | (((x) & 0xFF00) >> 8)) #define CPUTYPE CPUTYPE_65C816 + +/* cc65 really wants structs used repeatedly to be marked register */ +#define regptr register