~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to target-openrisc/helper.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * OpenRISC helper defines
3
 
 *
4
 
 * Copyright (c) 2011-2012 Jia Liu <proljc@gmail.com>
5
 
 *
6
 
 * This library is free software; you can redistribute it and/or
7
 
 * modify it under the terms of the GNU Lesser General Public
8
 
 * License as published by the Free Software Foundation; either
9
 
 * version 2 of the License, or (at your option) any later version.
10
 
 *
11
 
 * This library is distributed in the hope that it will be useful,
12
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 
 * Lesser General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU Lesser General Public
17
 
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18
 
 */
19
 
 
20
 
/* exception */
21
 
DEF_HELPER_FLAGS_2(exception, 0, void, env, i32)
22
 
 
23
 
/* float */
24
 
DEF_HELPER_FLAGS_2(itofd, 0, i64, env, i64)
25
 
DEF_HELPER_FLAGS_2(itofs, 0, i32, env, i32)
26
 
DEF_HELPER_FLAGS_2(ftoid, 0, i64, env, i64)
27
 
DEF_HELPER_FLAGS_2(ftois, 0, i32, env, i32)
28
 
 
29
 
#define FOP_MADD(op)                                             \
30
 
DEF_HELPER_FLAGS_3(float_ ## op ## _s, 0, i32, env, i32, i32)    \
31
 
DEF_HELPER_FLAGS_3(float_ ## op ## _d, 0, i64, env, i64, i64)
32
 
FOP_MADD(muladd)
33
 
#undef FOP_MADD
34
 
 
35
 
#define FOP_CALC(op)                                            \
36
 
DEF_HELPER_FLAGS_3(float_ ## op ## _s, 0, i32, env, i32, i32)    \
37
 
DEF_HELPER_FLAGS_3(float_ ## op ## _d, 0, i64, env, i64, i64)
38
 
FOP_CALC(add)
39
 
FOP_CALC(sub)
40
 
FOP_CALC(mul)
41
 
FOP_CALC(div)
42
 
FOP_CALC(rem)
43
 
#undef FOP_CALC
44
 
 
45
 
#define FOP_CMP(op)                                              \
46
 
DEF_HELPER_FLAGS_3(float_ ## op ## _s, 0, i32, env, i32, i32)    \
47
 
DEF_HELPER_FLAGS_3(float_ ## op ## _d, 0, i64, env, i64, i64)
48
 
FOP_CMP(eq)
49
 
FOP_CMP(lt)
50
 
FOP_CMP(le)
51
 
FOP_CMP(ne)
52
 
FOP_CMP(gt)
53
 
FOP_CMP(ge)
54
 
#undef FOP_CMP
55
 
 
56
 
/* int */
57
 
DEF_HELPER_FLAGS_1(ff1, 0, tl, tl)
58
 
DEF_HELPER_FLAGS_1(fl1, 0, tl, tl)
59
 
DEF_HELPER_FLAGS_3(mul32, 0, i32, env, i32, i32)
60
 
 
61
 
/* interrupt */
62
 
DEF_HELPER_FLAGS_1(rfe, 0, void, env)
63
 
 
64
 
/* sys */
65
 
DEF_HELPER_FLAGS_4(mtspr, 0, void, env, tl, tl, tl)
66
 
DEF_HELPER_FLAGS_4(mfspr, 0, tl, env, tl, tl, tl)