aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-01-05 00:06:41 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2004-01-05 00:06:41 +0000
commitbd497938895ec4fd7b327aac4de390e34f543509 (patch)
treea6b475e982c15cc90e5524f833f7a34ebd601e13
parent16d17fdb8ee6b25c501b1d32a74cf187455fe3d7 (diff)
use generic GenOpFunc
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@543 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--target-arm/translate.c5
-rw-r--r--target-i386/translate.c5
-rw-r--r--target-sparc/translate.c30
3 files changed, 4 insertions, 36 deletions
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 9447946293..44c6387eaa 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -51,11 +51,6 @@ enum {
#include "gen-op.h"
-typedef void (GenOpFunc)(void);
-typedef void (GenOpFunc1)(long);
-typedef void (GenOpFunc2)(long, long);
-typedef void (GenOpFunc3)(long, long, long);
-
static GenOpFunc2 *gen_test_cc[14] = {
gen_op_test_eq,
gen_op_test_ne,
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 725ee5ba8e..e45b6a438c 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -128,11 +128,6 @@ enum {
NB_OREGS,
};
-typedef void (GenOpFunc)(void);
-typedef void (GenOpFunc1)(long);
-typedef void (GenOpFunc2)(long, long);
-typedef void (GenOpFunc3)(long, long, long);
-
static GenOpFunc *gen_op_mov_reg_T0[3][8] = {
[OT_BYTE] = {
gen_op_movb_EAX_T0,
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index a5c1dbe6f3..82bd33c8e7 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -2,6 +2,7 @@
SPARC translation
Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at>
+ Copyright (C) 2003 Fabrice Bellard
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -19,33 +20,15 @@
*/
/*
- SPARC has two pitfalls: Delay slots and (a)nullification.
- This is currently solved as follows:
-
- 'call' instructions simply execute the delay slot before the actual
- control transfer instructions.
-
- 'jmpl' instructions execute calculate the destination, then execute
- the delay slot and then do the control transfer.
-
- (conditional) branch instructions are the most difficult ones, as the
- delay slot may be nullified (ie. not executed). This happens when a
- conditional branch is not executed (thus no control transfer happens)
- and the 'anull' bit in the branch instruction opcode is set. This is
- currently solved by doing a jump after the delay slot instruction.
-
TODO-list:
- Register window overflow/underflow check
+ NPC/PC static optimisations (use JUMP_TB when possible)
FPU-Instructions
- Coprocessor-Instructions
- Check signedness issues
Privileged instructions
+ Coprocessor-Instructions
Optimize synthetic instructions
Optional alignment and privileged instruction check
-
- -- TMO, 09/03/03
- */
+*/
#include <stdarg.h>
#include <stdlib.h>
@@ -87,11 +70,6 @@ enum {
static void disas_sparc_insn(DisasContext * dc);
-typedef void (GenOpFunc) (void);
-typedef void (GenOpFunc1) (long);
-typedef void (GenOpFunc2) (long, long);
-typedef void (GenOpFunc3) (long, long, long);
-
static GenOpFunc *gen_op_movl_TN_reg[2][32] = {
{
gen_op_movl_g0_T0,