cvw/examples/C/simple/simple.c

41 lines
749 B
C
Raw Normal View History

// simple.C
// David_Harris@hmc.edu 24 December 2021
// Simple illustration of compiling C code
2022-01-11 21:32:30 +00:00
//#include <stdio.h>
#include "util.h"
extern int printf(const char* fmt, ...);
2022-01-11 21:59:56 +00:00
extern int _comp1(void);
2022-01-11 21:01:48 +00:00
2022-01-11 21:59:56 +00:00
/*
long sum(long N) {
2022-01-11 21:59:56 +00:00
long result, i;
result = 0;
2022-01-11 21:01:48 +00:00
for (i=1; i<=N; i++) {
result = result + i;
}
2022-01-11 21:59:56 +00:00
return result;
2022-01-11 21:32:30 +00:00
int a;
2022-01-11 21:59:56 +00:00
asm volatile ("li s0, 10;");
2022-01-11 21:32:30 +00:00
asm volatile(
2022-01-11 21:59:56 +00:00
"li %0, 3;"
// "csrrs %0, 0xF14, zero" //CSSRS rd, mhartid, 0
: "=r"(a) //output
: //input
: //clobbered
2022-01-11 21:32:30 +00:00
);
return a;
}
2022-01-11 21:59:56 +00:00
*/
int main(void) {
2022-01-11 21:32:30 +00:00
int s[1], expected[1];
2022-01-11 21:59:56 +00:00
// s[0] = sum(4);
s[0] = _comp1();
2022-01-11 21:32:30 +00:00
printf("s = %d\n", s[0]);
2022-01-11 21:59:56 +00:00
expected[0] = 42;
2022-01-11 21:32:30 +00:00
return verify(1, s, expected); // 0 means success
2022-01-11 21:59:56 +00:00
}