diff options
Diffstat (limited to 'usr/rsc/fib/gcc.c')
-rw-r--r-- | usr/rsc/fib/gcc.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/usr/rsc/fib/gcc.c b/usr/rsc/fib/gcc.c new file mode 100644 index 000000000..a89839031 --- /dev/null +++ b/usr/rsc/fib/gcc.c @@ -0,0 +1,34 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include <stdint.h> + +typedef int32_t int32; + +static int32 +fib1(int32 n) +{ + int32 a, b, t; + + a = 0; + b = 1; + for(; n>0; n--) { + t = a; + a = b; + b += t; + } + return a; +} + +void +fib(void *v) +{ + struct { // 6g func(n int) int + int32 n; + int32 pad; + int32 ret; + } *args = v; + + args->ret = fib1(args->n); +} |