From d67788ab83802c930fa38b529e807c8899b92034 Mon Sep 17 00:00:00 2001 From: Russell Gallop Date: Wed, 17 Aug 2011 16:31:54 +0100 Subject: [PATCH] Add macros for reading and writing from xc pointers without indexing as there are no immediate formats for that. --- module_usb_aud_shared/usb_buffer/xc_ptr.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module_usb_aud_shared/usb_buffer/xc_ptr.h b/module_usb_aud_shared/usb_buffer/xc_ptr.h index 47f8d730..ac6b8b90 100644 --- a/module_usb_aud_shared/usb_buffer/xc_ptr.h +++ b/module_usb_aud_shared/usb_buffer/xc_ptr.h @@ -13,11 +13,15 @@ inline xc_ptr array_to_xc_ptr(unsigned a[]) { #define write_via_xc_ptr_indexed(p,i,x) asm("stw %0, %1[%2]"::"r"(x),"r"(p),"r"(i)) #define write_byte_via_xc_ptr_indexed(p,i,x) asm("st8 %0, %1[%2]"::"r"(x),"r"(p),"r"(i)) +// No immediate st8 format +#define write_byte_via_xc_ptr(p,x) write_byte_via_xc_ptr_indexed(p, 0, x) #define read_via_xc_ptr(x,p) asm("ldw %0, %1[0]":"=r"(x):"r"(p)); #define read_via_xc_ptr_indexed(x,p,i) asm("ldw %0, %1[%2]":"=r"(x):"r"(p),"r"(i)); #define read_byte_via_xc_ptr_indexed(x,p,i) asm("ld8u %0, %1[%2]":"=r"(x):"r"(p),"r"(i)); +// No immediate ld8u format +#define read_byte_via_xc_ptr(x,p) read_byte_via_xc_ptr_indexed(x, p, 0) #define GET_SHARED_GLOBAL(x, g) asm("ldw %0, dp[" #g "]":"=r"(x)) #define SET_SHARED_GLOBAL(g, v) asm("stw %0, dp[" #g "]"::"r"(v))