use generic GenOpFunc
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 5 Jan 2004 00:06:41 +0000 (00:06 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 5 Jan 2004 00:06:41 +0000 (00:06 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@543 c046a42c-6fe2-441c-8c8c-71466251a162

target-arm/translate.c
target-i386/translate.c
target-sparc/translate.c

index 9447946..44c6387 100644 (file)
@@ -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,
index 725ee5b..e45b6a4 100644 (file)
@@ -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,
index a5c1dbe..82bd33c 100644 (file)
@@ -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
  */
 
 /*
-   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,