From: David Given Date: Sat, 25 May 2013 12:31:27 +0000 (+0100) Subject: Implement .csa. X-Git-Tag: release-6-0-pre-5~10^2~38 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=d7efb0a32c17775071bb8f13ac0962353fe22ab8;p=ack.git Implement .csa. --HG-- branch : dtrg-videocore rename : mach/vc4/libem/dummy.s => mach/vc4/libem/csa.s --- diff --git a/mach/vc4/libem/csa.s b/mach/vc4/libem/csa.s new file mode 100644 index 000000000..1628199a0 --- /dev/null +++ b/mach/vc4/libem/csa.s @@ -0,0 +1,33 @@ +# +/* + * VideoCore IV support library for the ACK + * © 2013 David Given + * This file is redistributable under the terms of the 3-clause BSD license. + * See the file 'Copying' in the root of the distribution for the full text. + */ + +#include "videocore.h" + +.define .csa +.sect .data +.csa: + ! on entry: + ! r0 = un-fixed-up descriptor + ! r1 = value + add r0, gp + + ld r2, 4 (r0) ! check lower bound + cmp r1, r2 + mov.lo r1, r2 ! r1 = min(r1, r2) + + sub r1, r2 ! adjust value to be 0-based + + ld r2, 8 (r0) ! check upper bound + cmp r1, r2 + mov.hi r1, r2 ! r1 = max(r1, r2) + + add r1, #3 + ld r1, (r0, r1) ! load destination address + add r1, gp + b r1 ! ...and go + diff --git a/mach/vc4/libem/dummy.s b/mach/vc4/libem/dummy.s deleted file mode 100644 index fdbcc4c38..000000000 --- a/mach/vc4/libem/dummy.s +++ /dev/null @@ -1,14 +0,0 @@ -# -/* - * VideoCore IV support library for the ACK - * © 2013 David Given - * This file is redistributable under the terms of the 3-clause BSD license. - * See the file 'Copying' in the root of the distribution for the full text. - */ - -#include "videocore.h" - -.define __dummy -.sect .data -__dummy: - diff --git a/mach/vc4/libem/videocore.h b/mach/vc4/libem/videocore.h index 3e27a7e7b..8ccb981ee 100644 --- a/mach/vc4/libem/videocore.h +++ b/mach/vc4/libem/videocore.h @@ -13,3 +13,5 @@ .sect .data .sect .bss +#define gp r15 +