2 * MIPS emulation micro-operations templates for reg load & store for qemu.
4 * Copyright (c) 2004-2005 Jocelyn Mayer
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.
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.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 void glue(op_load_gpr_T0_gpr
, REG
) (void)
24 T0
= env
->gpr
[REG
][env
->current_tc
];
28 void glue(op_store_T0_gpr_gpr
, REG
) (void)
30 env
->gpr
[REG
][env
->current_tc
] = T0
;
34 void glue(op_load_gpr_T1_gpr
, REG
) (void)
36 T1
= env
->gpr
[REG
][env
->current_tc
];
40 void glue(op_store_T1_gpr_gpr
, REG
) (void)
42 env
->gpr
[REG
][env
->current_tc
] = T1
;
46 void glue(op_load_gpr_T2_gpr
, REG
) (void)
48 T2
= env
->gpr
[REG
][env
->current_tc
];
53 void glue(op_load_srsgpr_T0_gpr
, REG
) (void)
55 T0
= env
->gpr
[REG
][(env
->CP0_SRSCtl
>> CP0SRSCtl_PSS
) & 0xf];
59 void glue(op_store_T0_srsgpr_gpr
, REG
) (void)
61 env
->gpr
[REG
][(env
->CP0_SRSCtl
>> CP0SRSCtl_PSS
) & 0xf] = T0
;
67 #define SET_RESET(treg, tregname) \
68 void glue(op_set, tregname)(void) \
70 treg = (int32_t)PARAM1; \
73 void glue(op_reset, tregname)(void) \
85 #if defined(TARGET_MIPS64)
86 #define SET64(treg, tregname) \
87 void glue(op_set64, tregname)(void) \
89 treg = ((uint64_t)PARAM1 << 32) | (uint32_t)PARAM2; \