arm: fix m5ops binary for ARM and add m5fail.

Changes to make m5ops work under virtualization seemed to break them working
with non-virtualized systems and the recently added m5 fail command makes
the m5op binary not compile.  For now remove the code for virtualization.
This commit is contained in:
Ali Saidi 2013-10-31 13:41:13 -05:00
parent 79f81e2641
commit 68dee58c38
2 changed files with 5 additions and 19 deletions

View file

@ -145,7 +145,9 @@ do_fail(int argc, char *argv[])
if (argc < 1 || argc > 2) if (argc < 1 || argc > 2)
usage(); usage();
m5_fail((argc > 1) ? strtoul(argv[1], NULL, 0) : 0, strtoul(argv[0], NULL, 0)); uint64_t ints[2] = {0,0};
parse_int_args(argc, argv, ints, argc);
m5_fail(ints[1], ints[0]);
} }
void void

View file

@ -55,29 +55,13 @@
.align 2 .align 2
.globl \name .globl \name
\name: \name:
/* First, try to trap into m5 using the m5-kvm hypercall
* hack. The bxj will become a branch to the fallback code
* if it is executed in the normal m5 environment.
*/
push {lr}
#ifdef __thumb__
adr lr, 1f+1
#else
adr lr, 1f
#endif
ldr ip, =((((\func) & 0xFF) << 8) | ((\subfunc) & 0xFF))
bxj lr
pop {pc}
/* Old-style m5 pseudo instruction using CP1 accesses */
1:
#ifdef __thumb__ #ifdef __thumb__
.short 0xEE00 | \func .short 0xEE00 | \func
.short 0x0110 | (\subfunc << 12) .short 0x0110 | (\subfunc << 12)
#else #else
.long (0xEE000110 | (\func << 16) | (\subfunc << 12)) .long 0xEE000110 | (\func << 16) | (\subfunc << 12)
#endif #endif
pop {pc} mov pc,lr
.endm .endm
#define SIMPLE_OP(name, func, subfunc) simple_op name, func, subfunc #define SIMPLE_OP(name, func, subfunc) simple_op name, func, subfunc