From b4bec8ffb2503b1eeca408b8334e0ab0240511d7 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 14 Dec 2017 13:43:52 +0000 Subject: [PATCH] 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 --- Kernel/cpu-6502/cpu.h | 3 +++ Kernel/cpu-65c816/cpu.h | 3 +++ 2 files changed, 6 insertions(+) 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 -- 2.34.1