2 * Copyright (c) 2012-2014 Bastian Koppelmann C-Lab/University Paderborn
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
19 DEF_HELPER_3(add_ssov
, i32
, env
, i32
, i32
)
20 DEF_HELPER_3(add_suov
, i32
, env
, i32
, i32
)
21 DEF_HELPER_3(add_h_ssov
, i32
, env
, i32
, i32
)
22 DEF_HELPER_3(add_h_suov
, i32
, env
, i32
, i32
)
23 DEF_HELPER_3(sub_ssov
, i32
, env
, i32
, i32
)
24 DEF_HELPER_3(sub_suov
, i32
, env
, i32
, i32
)
25 DEF_HELPER_3(sub_h_ssov
, i32
, env
, i32
, i32
)
26 DEF_HELPER_3(sub_h_suov
, i32
, env
, i32
, i32
)
27 DEF_HELPER_3(mul_ssov
, i32
, env
, i32
, i32
)
28 DEF_HELPER_3(mul_suov
, i32
, env
, i32
, i32
)
29 DEF_HELPER_3(sha_ssov
, i32
, env
, i32
, i32
)
30 DEF_HELPER_3(absdif_ssov
, i32
, env
, i32
, i32
)
31 DEF_HELPER_4(madd32_ssov
, i32
, env
, i32
, i32
, i32
)
32 DEF_HELPER_4(madd32_suov
, i32
, env
, i32
, i32
, i32
)
33 DEF_HELPER_4(madd64_ssov
, i64
, env
, i32
, i64
, i32
)
34 DEF_HELPER_4(madd64_suov
, i64
, env
, i32
, i64
, i32
)
35 DEF_HELPER_4(msub32_ssov
, i32
, env
, i32
, i32
, i32
)
36 DEF_HELPER_4(msub32_suov
, i32
, env
, i32
, i32
, i32
)
37 DEF_HELPER_4(msub64_ssov
, i64
, env
, i32
, i64
, i32
)
38 DEF_HELPER_4(msub64_suov
, i64
, env
, i32
, i64
, i32
)
39 DEF_HELPER_3(absdif_h_ssov
, i32
, env
, i32
, i32
)
40 DEF_HELPER_2(abs_ssov
, i32
, env
, i32
)
41 DEF_HELPER_2(abs_h_ssov
, i32
, env
, i32
)
42 /* hword/byte arithmetic */
43 DEF_HELPER_2(abs_b
, i32
, env
, i32
)
44 DEF_HELPER_2(abs_h
, i32
, env
, i32
)
45 DEF_HELPER_3(absdif_b
, i32
, env
, i32
, i32
)
46 DEF_HELPER_3(absdif_h
, i32
, env
, i32
, i32
)
47 DEF_HELPER_3(add_b
, i32
, env
, i32
, i32
)
48 DEF_HELPER_3(add_h
, i32
, env
, i32
, i32
)
49 DEF_HELPER_3(sub_b
, i32
, env
, i32
, i32
)
50 DEF_HELPER_3(sub_h
, i32
, env
, i32
, i32
)
51 DEF_HELPER_FLAGS_2(eq_b
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
52 DEF_HELPER_FLAGS_2(eq_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
53 DEF_HELPER_FLAGS_2(eqany_b
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
54 DEF_HELPER_FLAGS_2(eqany_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
55 DEF_HELPER_FLAGS_2(lt_b
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
56 DEF_HELPER_FLAGS_2(lt_bu
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
57 DEF_HELPER_FLAGS_2(lt_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
58 DEF_HELPER_FLAGS_2(lt_hu
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
59 DEF_HELPER_FLAGS_2(max_b
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
60 DEF_HELPER_FLAGS_2(max_bu
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
61 DEF_HELPER_FLAGS_2(max_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
62 DEF_HELPER_FLAGS_2(max_hu
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
63 DEF_HELPER_FLAGS_2(min_b
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
64 DEF_HELPER_FLAGS_2(min_bu
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
65 DEF_HELPER_FLAGS_2(min_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
66 DEF_HELPER_FLAGS_2(min_hu
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
67 /* count leading ... */
68 DEF_HELPER_FLAGS_1(clo
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
69 DEF_HELPER_FLAGS_1(clo_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
70 DEF_HELPER_FLAGS_1(clz
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
71 DEF_HELPER_FLAGS_1(clz_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
72 DEF_HELPER_FLAGS_1(cls
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
73 DEF_HELPER_FLAGS_1(cls_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
75 DEF_HELPER_FLAGS_2(sh
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
76 DEF_HELPER_FLAGS_2(sh_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
77 DEF_HELPER_3(sha
, i32
, env
, i32
, i32
)
78 DEF_HELPER_2(sha_h
, i32
, i32
, i32
)
79 /* merge/split/parity */
80 DEF_HELPER_FLAGS_2(bmerge
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
)
81 DEF_HELPER_FLAGS_1(bsplit
, TCG_CALL_NO_RWG_SE
, i64
, i32
)
82 DEF_HELPER_FLAGS_1(parity
, TCG_CALL_NO_RWG_SE
, i32
, i32
)
84 DEF_HELPER_1(unpack
, i64
, i32
)
86 DEF_HELPER_3(dvinit_b_13
, i64
, env
, i32
, i32
)
87 DEF_HELPER_3(dvinit_b_131
, i64
, env
, i32
, i32
)
88 DEF_HELPER_3(dvinit_h_13
, i64
, env
, i32
, i32
)
89 DEF_HELPER_3(dvinit_h_131
, i64
, env
, i32
, i32
)
91 DEF_HELPER_FLAGS_5(mul_h
, TCG_CALL_NO_RWG_SE
, i64
, i32
, i32
, i32
, i32
, i32
)
92 DEF_HELPER_FLAGS_5(mulm_h
, TCG_CALL_NO_RWG_SE
, i64
, i32
, i32
, i32
, i32
, i32
)
93 DEF_HELPER_FLAGS_5(mulr_h
, TCG_CALL_NO_RWG_SE
, i32
, i32
, i32
, i32
, i32
, i32
)
95 DEF_HELPER_2(call
, void, env
, i32
)
96 DEF_HELPER_1(ret
, void, env
)
97 DEF_HELPER_2(bisr
, void, env
, i32
)
98 DEF_HELPER_1(rfe
, void, env
)
99 DEF_HELPER_2(ldlcx
, void, env
, i32
)
100 DEF_HELPER_2(lducx
, void, env
, i32
)
101 DEF_HELPER_2(stlcx
, void, env
, i32
)
102 DEF_HELPER_2(stucx
, void, env
, i32
)
103 /* Address mode helper */
104 DEF_HELPER_1(br_update
, i32
, i32
)
105 DEF_HELPER_2(circ_update
, i32
, i32
, i32
)
106 /* PSW cache helper */
107 DEF_HELPER_2(psw_write
, void, env
, i32
)
108 DEF_HELPER_1(psw_read
, i32
, env
)