diff --git a/c-print-array/main.c b/c-print-array/main.c index 023adca..e25b83f 100644 --- a/c-print-array/main.c +++ b/c-print-array/main.c @@ -7,10 +7,10 @@ static int i = 0; void _start(void) { /* TODO: handle sp/fp init better -- separate crt0.S? */ - asm ("law 03000"); - asm ("dac 209"); - asm ("law 04000"); - asm ("dac 208"); + asm volatile ("law 03000"); + asm volatile ("dac 0131"); + asm volatile ("law 04000"); + asm volatile ("dac 0130"); /* check with no iterators */ putc(x[0]); @@ -23,19 +23,19 @@ void _start(void) /* check with local iterator w/o func call */ for (int j = 0; j < 3; j++) { - asm ("lio %0" : : "r"(x[j])); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(x[j]) : "$io"); + asm volatile ("tyo"); } /* check with local iterator w/ func call */ for (int j = 0; j < 3; j++) putc(x[j]); - asm ("hlt"); + asm volatile ("hlt"); __builtin_unreachable(); } static void putc(int c) { - asm ("lio %0" : : "r"(c)); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(c) : "$io"); + asm volatile ("tyo"); } diff --git a/c-print-fibonacci/main.c b/c-print-fibonacci/main.c index 6cd2b4c..154e163 100644 --- a/c-print-fibonacci/main.c +++ b/c-print-fibonacci/main.c @@ -7,9 +7,9 @@ static int fib(int); void _start(void) { asm volatile ("law 04000"); - asm volatile ("dac 209"); + asm volatile ("dac 0131"); asm volatile ("law 03000"); - asm volatile ("dac 208"); + asm volatile ("dac 0130"); int n; @@ -24,7 +24,7 @@ void _start(void) static void putc(int c) { - asm volatile ("lio %0" : : "r"(c) : "io"); + asm volatile ("lio %0" : : "r"(c) : "$io"); asm volatile ("tyo"); } diff --git a/c-print-for-loop/main.c b/c-print-for-loop/main.c index 0f883f0..0730440 100644 --- a/c-print-for-loop/main.c +++ b/c-print-for-loop/main.c @@ -3,10 +3,10 @@ static int get_char(int); void _start(void) { - asm ("law 04000"); - asm ("dac 209"); - asm ("law 03000"); - asm ("dac 208"); + asm volatile ("law 04000"); + asm volatile ("dac 0131"); + asm volatile ("law 03000"); + asm volatile ("dac 0130"); int c; @@ -15,13 +15,13 @@ void _start(void) putc(c); } - asm ("hlt"); + asm volatile ("hlt"); __builtin_unreachable(); } static void putc(int c) { - asm ("lio %0" : : "r"(c)); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(c) : "$io"); + asm volatile ("tyo"); } static int get_char(int c) diff --git a/c-print-struct/main.c b/c-print-struct/main.c index d87abd4..26ec73b 100644 --- a/c-print-struct/main.c +++ b/c-print-struct/main.c @@ -8,9 +8,10 @@ static struct { void _start(void) { - asm ("law 04000"); - asm ("dac 209"); - asm ("dac 208"); + asm volatile ("law 04000"); + asm volatile ("dac 0131"); + asm volatile ("law 03000"); + asm volatile ("dac 0130"); x.field1 = 027; x.field2 = 030; @@ -26,6 +27,6 @@ void _start(void) } static void putc(int c) { - asm ("lio %0" : : "r"(c)); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(c) : "$io"); + asm volatile ("tyo"); } diff --git a/c-print-x/main.c b/c-print-x/main.c index 9c430ab..35c7801 100644 --- a/c-print-x/main.c +++ b/c-print-x/main.c @@ -6,18 +6,19 @@ int y; void _start(void) { - asm ("law 04000"); - asm ("dac 209"); - asm ("dac 208"); + asm volatile ("law 04000"); + asm volatile ("dac 0131"); + asm volatile ("law 03000"); + asm volatile ("dac 0130"); - asm ("lio %0" : : "r"(x)); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(x) : "$io"); + asm volatile ("tyo"); y = 027; - asm ("lio %0" : : "r"(y)); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(y) : "$io"); + asm volatile ("tyo"); - asm ("hlt"); + asm volatile ("hlt"); __builtin_unreachable(); } diff --git a/c-test-arith/main.c b/c-test-arith/main.c index e7bf177..8679e16 100644 --- a/c-test-arith/main.c +++ b/c-test-arith/main.c @@ -7,10 +7,10 @@ int z; void _start(void) { /* TODO: handle sp/fp init better -- separate crt0.S? */ - asm ("law 03000"); - asm ("dac 209"); - asm ("law 04000"); - asm ("dac 208"); + asm volatile ("law 03000"); + asm volatile ("dac 0131"); + asm volatile ("law 04000"); + asm volatile ("dac 0130"); x = 21; y = 37; @@ -23,11 +23,11 @@ void _start(void) if (z == 4) putc(027); - asm ("hlt"); + asm volatile ("hlt"); __builtin_unreachable(); } static void putc(int c) { - asm ("lio %0" : : "r"(c)); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(c) : "$io"); + asm volatile ("tyo"); } diff --git a/c-test-comparison/main.c b/c-test-comparison/main.c index f72170c..408c553 100644 --- a/c-test-comparison/main.c +++ b/c-test-comparison/main.c @@ -3,10 +3,10 @@ static void putc(int); void _start(void) { /* TODO: handle sp/fp init better -- separate crt0.S? */ - asm ("law 03000"); - asm ("dac 209"); - asm ("law 04000"); - asm ("dac 208"); + asm volatile ("law 03000"); + asm volatile ("dac 0131"); + asm volatile ("law 04000"); + asm volatile ("dac 0130"); int x = 30; int y = 30; @@ -44,11 +44,11 @@ void _start(void) if (x > y) putc(071); // i - asm ("hlt"); + asm volatile ("hlt"); __builtin_unreachable(); } static void putc(int c) { - asm ("lio %0" : : "r"(c)); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(c) : "$io"); + asm volatile ("tyo"); } diff --git a/c-test-recursion/main.c b/c-test-recursion/main.c index 73ab9ab..35ec738 100644 --- a/c-test-recursion/main.c +++ b/c-test-recursion/main.c @@ -5,20 +5,20 @@ static void foo(int); void _start(void) { /* TODO: handle sp/fp init better -- separate crt0.S? */ - asm ("law 03000"); - asm ("dac 209"); - asm ("law 04000"); - asm ("dac 208"); + asm volatile ("law 03000"); + asm volatile ("dac 0131"); + asm volatile ("law 04000"); + asm volatile ("dac 0130"); foo(20); - asm ("hlt"); + asm volatile ("hlt"); __builtin_unreachable(); } static void putc() { - asm ("lio %0" : : "r"(027) : "io"); - asm ("tyo"); + asm volatile ("lio %0" : : "r"(027) : "$io"); + asm volatile ("tyo"); } static void foo(int n) diff --git a/pdp1-gcc b/pdp1-gcc index 5b290ea..5f49091 160000 --- a/pdp1-gcc +++ b/pdp1-gcc @@ -1 +1 @@ -Subproject commit 5b290ea6a3755f5ad1d940bb5de7975dab9539b9 +Subproject commit 5f4909120de3159c1a6f7fbdbdc801c354850990