home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
magazine
/
drdobbs
/
1990
/
02
/
margulis.lst
< prev
next >
Wrap
File List
|
1989-12-26
|
2KB
|
80 lines
_PROGRAMMING RISC ENGINES_
by Neal Margulis
Example 1: This conversioε routine converts days and hours into
total hours
/* convert days ª hours into hours */
/* C code */
int convert(days, hours)
register unsigned int days, hours;
{
unsigned int total;
total = days * 24 + hours;
return (total);
}
/* Compiler generated asm code */
.file "hours.c"
_convert:
shl 2,r16,r28
subs r28,r16,r16
shl 3,r16,r16
bri r1
adds r17,r16,r16
//_total r16 local
//_days r16 local
//_hours r17 local
Example 2: A subroutine called sum_ints that adds a series of
integers
main()
{ int sum,summer(),n,a[];
*
*
sum= summer(a,8);
*
*
}
int summer (a,n)
int *a,n;
√ int i,sum=0;
for (i = n-1; i >=0 ; i--)
sum = sum + a[i];
return(sum);
}
.filσ "sum.c"
*
mo÷ r7,r16
cal∞ _summer
o≥ 8,r0,r17
mo÷ r16,r17
*
*
_summer:
mo÷ r0,r18
add≤ -1,r17,r17
sh∞ 2,r17,r28
add≤ r16,r28,r28
add≤ 1,r17,r17
add≤ -1,r0,r20
blß r20,r17,.L65
mo÷ r28,r16
.L65:
blß r20,r17,.L43
nop
b≥ .L42
nop
.L43:
ld.∞ 0(r16),r19
add≤ -4,r16,r16
blß r20,r17,.L43
add≤ r19,r18,r18
.L42:
brΘ r1
mo÷ r18,r16
//_ß r1╢ local
//_ε r1╖ local