diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-26 18:03:45 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-26 18:03:45 +0100 |
commit | ea0f58090923bd7e435c4f48eb751854a4292b9a (patch) | |
tree | 8b138cec9ef636d436bae9d5a128643779b95754 /sys/src/cmd/5c | |
parent | bc610a1b1c32f6e2e9b034217bb3ce9a7defa739 (diff) |
add arm vfp support to compiler and linker (from sources)
Diffstat (limited to 'sys/src/cmd/5c')
-rw-r--r-- | sys/src/cmd/5c/txt.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/src/cmd/5c/txt.c b/sys/src/cmd/5c/txt.c index ad88cf496..9ee8cb5b6 100644 --- a/sys/src/cmd/5c/txt.c +++ b/sys/src/cmd/5c/txt.c @@ -721,8 +721,13 @@ gmove(Node *f, Node *t) regfree(&nod1); p1 = p; regalloc(&nod, t, Z); - gins(AMOVF, nodfconst(2147483648.), &nod); - gins(AADDF, &nod, t); + if(tt == TFLOAT) { + gins(AMOVF, nodfconst(2147483648.), &nod); + gins(AADDF, &nod, t); + } else { + gins(AMOVD, nodfconst(2147483648.), &nod); + gins(AADDD, &nod, t); + } regfree(&nod); patch(p1, pc); return; @@ -1056,7 +1061,8 @@ gopcode(int o, Node *f1, Node *f2, Node *t) nextpc(); p->as = a; naddr(f1, &p->from); - if(a == ACMP && f1->op == OCONST && p->from.offset < 0 && p->from.offset != -p->from.offset) { + if(a == ACMP && f1->op == OCONST && p->from.offset < 0 && + p->from.offset != 0x80000000) { p->as = ACMN; p->from.offset = -p->from.offset; } |