Commit bd497938895ec4fd7b327aac4de390e34f543509

Authored by bellard
1 parent 16d17fdb

use generic GenOpFunc


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@543 c046a42c-6fe2-441c-8c8c-71466251a162
target-arm/translate.c
@@ -51,11 +51,6 @@ enum { @@ -51,11 +51,6 @@ enum {
51 51
52 #include "gen-op.h" 52 #include "gen-op.h"
53 53
54 -typedef void (GenOpFunc)(void);  
55 -typedef void (GenOpFunc1)(long);  
56 -typedef void (GenOpFunc2)(long, long);  
57 -typedef void (GenOpFunc3)(long, long, long);  
58 -  
59 static GenOpFunc2 *gen_test_cc[14] = { 54 static GenOpFunc2 *gen_test_cc[14] = {
60 gen_op_test_eq, 55 gen_op_test_eq,
61 gen_op_test_ne, 56 gen_op_test_ne,
target-i386/translate.c
@@ -128,11 +128,6 @@ enum { @@ -128,11 +128,6 @@ enum {
128 NB_OREGS, 128 NB_OREGS,
129 }; 129 };
130 130
131 -typedef void (GenOpFunc)(void);  
132 -typedef void (GenOpFunc1)(long);  
133 -typedef void (GenOpFunc2)(long, long);  
134 -typedef void (GenOpFunc3)(long, long, long);  
135 -  
136 static GenOpFunc *gen_op_mov_reg_T0[3][8] = { 131 static GenOpFunc *gen_op_mov_reg_T0[3][8] = {
137 [OT_BYTE] = { 132 [OT_BYTE] = {
138 gen_op_movb_EAX_T0, 133 gen_op_movb_EAX_T0,
target-sparc/translate.c
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 SPARC translation 2 SPARC translation
3 3
4 Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at> 4 Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at>
  5 + Copyright (C) 2003 Fabrice Bellard
5 6
6 This library is free software; you can redistribute it and/or 7 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public 8 modify it under the terms of the GNU Lesser General Public
@@ -19,33 +20,15 @@ @@ -19,33 +20,15 @@
19 */ 20 */
20 21
21 /* 22 /*
22 - SPARC has two pitfalls: Delay slots and (a)nullification.  
23 - This is currently solved as follows:  
24 -  
25 - 'call' instructions simply execute the delay slot before the actual  
26 - control transfer instructions.  
27 -  
28 - 'jmpl' instructions execute calculate the destination, then execute  
29 - the delay slot and then do the control transfer.  
30 -  
31 - (conditional) branch instructions are the most difficult ones, as the  
32 - delay slot may be nullified (ie. not executed). This happens when a  
33 - conditional branch is not executed (thus no control transfer happens)  
34 - and the 'anull' bit in the branch instruction opcode is set. This is  
35 - currently solved by doing a jump after the delay slot instruction.  
36 -  
37 TODO-list: 23 TODO-list:
38 24
39 - Register window overflow/underflow check 25 + NPC/PC static optimisations (use JUMP_TB when possible)
40 FPU-Instructions 26 FPU-Instructions
41 - Coprocessor-Instructions  
42 - Check signedness issues  
43 Privileged instructions 27 Privileged instructions
  28 + Coprocessor-Instructions
44 Optimize synthetic instructions 29 Optimize synthetic instructions
45 Optional alignment and privileged instruction check 30 Optional alignment and privileged instruction check
46 -  
47 - -- TMO, 09/03/03  
48 - */ 31 +*/
49 32
50 #include <stdarg.h> 33 #include <stdarg.h>
51 #include <stdlib.h> 34 #include <stdlib.h>
@@ -87,11 +70,6 @@ enum { @@ -87,11 +70,6 @@ enum {
87 70
88 static void disas_sparc_insn(DisasContext * dc); 71 static void disas_sparc_insn(DisasContext * dc);
89 72
90 -typedef void (GenOpFunc) (void);  
91 -typedef void (GenOpFunc1) (long);  
92 -typedef void (GenOpFunc2) (long, long);  
93 -typedef void (GenOpFunc3) (long, long, long);  
94 -  
95 static GenOpFunc *gen_op_movl_TN_reg[2][32] = { 73 static GenOpFunc *gen_op_movl_TN_reg[2][32] = {
96 { 74 {
97 gen_op_movl_g0_T0, 75 gen_op_movl_g0_T0,