summaryrefslogtreecommitdiff
path: root/sys/src/cmd/5e
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-07-08 02:13:16 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-07-08 02:13:16 +0200
commitfcb9abccbbc73a4f449d55c2c7fb369db2ad139d (patch)
tree397902659c399e97c14e5d5dd68c3cb761236649 /sys/src/cmd/5e
parent63879193e7e0d271daa215b02d6c4f64c98dc6ae (diff)
5e: enable VFP emulation by default, doubles only need to be 4 byte aligned
this adds -F flag to 5e (same as 5l) to disable VFP emulation and makes VFP emulation the default.
Diffstat (limited to 'sys/src/cmd/5e')
-rw-r--r--sys/src/cmd/5e/5e.c4
-rw-r--r--sys/src/cmd/5e/vfp.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/src/cmd/5e/5e.c b/sys/src/cmd/5e/5e.c
index 238bcadaa..85367c3ee 100644
--- a/sys/src/cmd/5e/5e.c
+++ b/sys/src/cmd/5e/5e.c
@@ -4,6 +4,7 @@
#include "dat.h"
#include "fns.h"
+int vfp = 1;
int nflag, pflag, bflag;
Ref nproc;
@@ -49,7 +50,7 @@ cleanup(void)
static void
usage(void)
{
- fprint(2, "usage: 5e [-npbf] text [...]\n");
+ fprint(2, "usage: 5e [-npbF] text [...]\n");
exits(nil);
}
@@ -105,6 +106,7 @@ main(int argc, char **argv)
case 'p': pflag++; break;
case 'b': bflag++; break;
case 'f': vfp = 1; break;
+ case 'F': vfp = 0; break;
default: usage();
} ARGEND;
if(argc < 1)
diff --git a/sys/src/cmd/5e/vfp.c b/sys/src/cmd/5e/vfp.c
index 2ab755a09..0f4e7eeb6 100644
--- a/sys/src/cmd/5e/vfp.c
+++ b/sys/src/cmd/5e/vfp.c
@@ -55,7 +55,7 @@ vfprmtransfer(u32int instr)
sz = instr & (1<<8);
if((instr & (1<<23)) == 0)
off = -off;
- ea = vaddr(evenaddr(P->R[n] + off, sz ? 7 : 3), 8, &seg);
+ ea = vaddr(evenaddr(P->R[n] + off, 3), sz ? 8 : 4, &seg);
switch((instr>>20)&0x3){
case 0:
if(sz)