diff --git a/examples/C/simple/Makefile b/examples/C/simple/Makefile index b4d49957..d5c180f3 100644 --- a/examples/C/simple/Makefile +++ b/examples/C/simple/Makefile @@ -9,7 +9,7 @@ $(TARGET): $(TARGET).c Makefile -fno-builtin-printf -fno-tree-loop-distribute-patterns \ -static -nostdlib -nostartfiles -lm -lgcc -T../common/test.ld \ -I../common \ - -O $(TARGET).c \ + -O0 $(TARGET).c \ ../common/crt.S ../common/syscalls.c clean: diff --git a/examples/C/simple/simple.c b/examples/C/simple/simple.c index 2bd33ac5..edf37b20 100644 --- a/examples/C/simple/simple.c +++ b/examples/C/simple/simple.c @@ -2,20 +2,34 @@ // David_Harris@hmc.edu 24 December 2021 // Simple illustration of compiling C code -#include +//#include +#include "util.h" +extern int printf(const char* fmt, ...); long sum(long N) { - long result, i; +/* long result, i; result = 0; for (i=1; i<=N; i++) { result = result + i; } - return result; + return result; */ + + int a; +// asm volatile ("li s0, 10;"); + asm volatile( + "li %0, 10" +// "csrrs %0, 0xF14, zero" //CSSRS rd, mhartid, 0 + : "=r"(a) //output + : //input + : //clobbered + ); + return a; } int main(void) { - long s; - s = sum(4); - printf("s = %ld\n", s); - return 0; // 0 means success + int s[1], expected[1]; + s[0] = sum(4); + printf("s = %d\n", s[0]); + expected[0] = 10; + return verify(1, s, expected); // 0 means success } \ No newline at end of file