root / tcg / s390 / tcg-target.h @ d7156f7c
History | View | Annotate | Download (3.7 kB)
1 | 2827822e | Alexander Graf | /*
|
---|---|---|---|
2 | 2827822e | Alexander Graf | * Tiny Code Generator for QEMU
|
3 | 2827822e | Alexander Graf | *
|
4 | 2827822e | Alexander Graf | * Copyright (c) 2009 Ulrich Hecht <uli@suse.de>
|
5 | 2827822e | Alexander Graf | *
|
6 | 2827822e | Alexander Graf | * Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 | 2827822e | Alexander Graf | * of this software and associated documentation files (the "Software"), to deal
|
8 | 2827822e | Alexander Graf | * in the Software without restriction, including without limitation the rights
|
9 | 2827822e | Alexander Graf | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10 | 2827822e | Alexander Graf | * copies of the Software, and to permit persons to whom the Software is
|
11 | 2827822e | Alexander Graf | * furnished to do so, subject to the following conditions:
|
12 | 2827822e | Alexander Graf | *
|
13 | 2827822e | Alexander Graf | * The above copyright notice and this permission notice shall be included in
|
14 | 2827822e | Alexander Graf | * all copies or substantial portions of the Software.
|
15 | 2827822e | Alexander Graf | *
|
16 | 2827822e | Alexander Graf | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17 | 2827822e | Alexander Graf | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18 | 2827822e | Alexander Graf | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
19 | 2827822e | Alexander Graf | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20 | 2827822e | Alexander Graf | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21 | 2827822e | Alexander Graf | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22 | 2827822e | Alexander Graf | * THE SOFTWARE.
|
23 | 2827822e | Alexander Graf | */
|
24 | cb9c377f | Paolo Bonzini | #ifndef TCG_TARGET_S390
|
25 | 2827822e | Alexander Graf | #define TCG_TARGET_S390 1 |
26 | 2827822e | Alexander Graf | |
27 | 2827822e | Alexander Graf | #define TCG_TARGET_WORDS_BIGENDIAN
|
28 | 2827822e | Alexander Graf | |
29 | 48bb3750 | Richard Henderson | typedef enum TCGReg { |
30 | 2827822e | Alexander Graf | TCG_REG_R0 = 0,
|
31 | 2827822e | Alexander Graf | TCG_REG_R1, |
32 | 2827822e | Alexander Graf | TCG_REG_R2, |
33 | 2827822e | Alexander Graf | TCG_REG_R3, |
34 | 2827822e | Alexander Graf | TCG_REG_R4, |
35 | 2827822e | Alexander Graf | TCG_REG_R5, |
36 | 2827822e | Alexander Graf | TCG_REG_R6, |
37 | 2827822e | Alexander Graf | TCG_REG_R7, |
38 | 2827822e | Alexander Graf | TCG_REG_R8, |
39 | 2827822e | Alexander Graf | TCG_REG_R9, |
40 | 2827822e | Alexander Graf | TCG_REG_R10, |
41 | 2827822e | Alexander Graf | TCG_REG_R11, |
42 | 2827822e | Alexander Graf | TCG_REG_R12, |
43 | 2827822e | Alexander Graf | TCG_REG_R13, |
44 | 2827822e | Alexander Graf | TCG_REG_R14, |
45 | 2827822e | Alexander Graf | TCG_REG_R15 |
46 | 48bb3750 | Richard Henderson | } TCGReg; |
47 | 48bb3750 | Richard Henderson | |
48 | 2827822e | Alexander Graf | #define TCG_TARGET_NB_REGS 16 |
49 | 2827822e | Alexander Graf | |
50 | 36828256 | Richard Henderson | /* optional instructions */
|
51 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_div2_i32 1 |
52 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_rot_i32 1 |
53 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext8s_i32 1 |
54 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext16s_i32 1 |
55 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext8u_i32 1 |
56 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext16u_i32 1 |
57 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_bswap16_i32 1 |
58 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_bswap32_i32 1 |
59 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_not_i32 0 |
60 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_neg_i32 1 |
61 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_andc_i32 0 |
62 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_orc_i32 0 |
63 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_eqv_i32 0 |
64 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_nand_i32 0 |
65 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_nor_i32 0 |
66 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_deposit_i32 0 |
67 | ffc5ea09 | Richard Henderson | #define TCG_TARGET_HAS_movcond_i32 0 |
68 | e6a72734 | Richard Henderson | #define TCG_TARGET_HAS_add2_i32 0 |
69 | e6a72734 | Richard Henderson | #define TCG_TARGET_HAS_sub2_i32 0 |
70 | e6a72734 | Richard Henderson | #define TCG_TARGET_HAS_mulu2_i32 0 |
71 | 36828256 | Richard Henderson | |
72 | 48bb3750 | Richard Henderson | #if TCG_TARGET_REG_BITS == 64 |
73 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_div2_i64 1 |
74 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_rot_i64 1 |
75 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext8s_i64 1 |
76 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext16s_i64 1 |
77 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext32s_i64 1 |
78 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext8u_i64 1 |
79 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext16u_i64 1 |
80 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_ext32u_i64 1 |
81 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_bswap16_i64 1 |
82 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_bswap32_i64 1 |
83 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_bswap64_i64 1 |
84 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_not_i64 0 |
85 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_neg_i64 1 |
86 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_andc_i64 0 |
87 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_orc_i64 0 |
88 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_eqv_i64 0 |
89 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_nand_i64 0 |
90 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_nor_i64 0 |
91 | 25c4d9cc | Richard Henderson | #define TCG_TARGET_HAS_deposit_i64 0 |
92 | ffc5ea09 | Richard Henderson | #define TCG_TARGET_HAS_movcond_i64 0 |
93 | d7156f7c | Richard Henderson | #define TCG_TARGET_HAS_add2_i64 0 |
94 | d7156f7c | Richard Henderson | #define TCG_TARGET_HAS_sub2_i64 0 |
95 | d7156f7c | Richard Henderson | #define TCG_TARGET_HAS_mulu2_i64 0 |
96 | 48bb3750 | Richard Henderson | #endif
|
97 | 48bb3750 | Richard Henderson | |
98 | 2827822e | Alexander Graf | /* used for function call generation */
|
99 | 2827822e | Alexander Graf | #define TCG_REG_CALL_STACK TCG_REG_R15
|
100 | 2827822e | Alexander Graf | #define TCG_TARGET_STACK_ALIGN 8 |
101 | 2827822e | Alexander Graf | #define TCG_TARGET_CALL_STACK_OFFSET 0 |
102 | 2827822e | Alexander Graf | |
103 | 2bece2c8 | Richard Henderson | #define TCG_TARGET_EXTEND_ARGS 1 |
104 | 2bece2c8 | Richard Henderson | |
105 | 2827822e | Alexander Graf | enum {
|
106 | 2827822e | Alexander Graf | TCG_AREG0 = TCG_REG_R10, |
107 | 2827822e | Alexander Graf | }; |
108 | 2827822e | Alexander Graf | |
109 | dba4f1bc | Stefan Weil | static inline void flush_icache_range(tcg_target_ulong start, |
110 | dba4f1bc | Stefan Weil | tcg_target_ulong stop) |
111 | 2827822e | Alexander Graf | { |
112 | 2827822e | Alexander Graf | } |
113 | cb9c377f | Paolo Bonzini | |
114 | cb9c377f | Paolo Bonzini | #endif |