Implement .csa.

--HG--
branch : dtrg-videocore
rename : mach/vc4/libem/dummy.s => mach/vc4/libem/csa.s
This commit is contained in:
David Given 2013-05-25 13:31:27 +01:00
parent 2ee79ab0b2
commit d7efb0a32c
3 changed files with 35 additions and 14 deletions

33
mach/vc4/libem/csa.s Normal file
View file

@ -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

View file

@ -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:

View file

@ -13,3 +13,5 @@
.sect .data
.sect .bss
#define gp r15