diff options
author | Eric Biederman <ebiederm@xmission.com> | 2003-07-01 10:05:30 +0000 |
---|---|---|
committer | Eric Biederman <ebiederm@xmission.com> | 2003-07-01 10:05:30 +0000 |
commit | 530b5193e477d1756598700805b35e8a129a241f (patch) | |
tree | 3eb231f12c378a51d39ebb02d233628cf436796b /util/romcc/tests/simple_test50.c | |
parent | 57fa1b8279d78b3083b086708d857422ed99beca (diff) | |
download | coreboot-530b5193e477d1756598700805b35e8a129a241f.tar.xz |
- Massive set of cleanups/fixes for romcc. Lots of corner cases now work
properly. And a few long standing bugs have been rooted out and removed.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@931 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/romcc/tests/simple_test50.c')
-rw-r--r-- | util/romcc/tests/simple_test50.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/util/romcc/tests/simple_test50.c b/util/romcc/tests/simple_test50.c new file mode 100644 index 0000000000..51c7c505c9 --- /dev/null +++ b/util/romcc/tests/simple_test50.c @@ -0,0 +1,43 @@ +typedef __builtin_div_t div_t; +typedef __builtin_ldiv_t ldiv_t; +typedef __builtin_udiv_t udiv_t; +typedef __builtin_uldiv_t uldiv_t; + +static div_t div(int numer, int denom) +{ + return __builtin_div(numer, denom); +} +static ldiv_t ldiv(long numer, long denom) +{ + return __builtin_ldiv(numer, denom); +} +static udiv_t udiv(unsigned numer, unsigned denom) +{ + return __builtin_udiv(numer, denom); +} +static uldiv_t uldiv(unsigned long numer, unsigned long denom) +{ + return __builtin_uldiv(numer, denom); +} + +static void main(void) +{ + volatile long *sval = (volatile long *)0x1234; + volatile unsigned long *uval = (volatile unsigned long *)0x5678; + long int a, b, c; + unsigned long e, f, g; + ldiv_t lresult; + uldiv_t ulresult; + + a = sval[0]; + b = sval[1]; + lresult = ldiv(a,b); + sval[2] = lresult.quot; + sval[3] = lresult.rem; + + e = uval[0]; + f = uval[1]; + ulresult = uldiv(e, f); + uval[2] = ulresult.quot; + uval[3] = ulresult.rem; +} |