Implement .csa.
authorDavid Given <dg@cowlark.com>
Sat, 25 May 2013 12:31:27 +0000 (13:31 +0100)
committerDavid Given <dg@cowlark.com>
Sat, 25 May 2013 12:31:27 +0000 (13:31 +0100)
--HG--
branch : dtrg-videocore
rename : mach/vc4/libem/dummy.s => mach/vc4/libem/csa.s

mach/vc4/libem/csa.s [new file with mode: 0644]
mach/vc4/libem/dummy.s [deleted file]
mach/vc4/libem/videocore.h

diff --git a/mach/vc4/libem/csa.s b/mach/vc4/libem/csa.s
new file mode 100644 (file)
index 0000000..1628199
--- /dev/null
@@ -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 (file)
index fdbcc4c..0000000
+++ /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:
-
index 3e27a7e..8ccb981 100644 (file)
@@ -13,3 +13,5 @@
 .sect .data
 .sect .bss
 
+#define gp r15
+