summaryrefslogtreecommitdiff
path: root/sys/src/cmd/5c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-01-26 18:03:45 +0100
committercinap_lenrek <cinap_lenrek@gmx.de>2013-01-26 18:03:45 +0100
commitea0f58090923bd7e435c4f48eb751854a4292b9a (patch)
tree8b138cec9ef636d436bae9d5a128643779b95754 /sys/src/cmd/5c
parentbc610a1b1c32f6e2e9b034217bb3ce9a7defa739 (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.c12
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;
}