ops_template_mem.h revision 677833bc953b6cb418c701facbdcf4aa18d6c44e
/*
* i386 micro operations (included several times to generate
* different operand sizes)
*
* Copyright (c) 2003 Fabrice Bellard
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifdef MEM_WRITE
#if MEM_WRITE == 0
#if DATA_BITS == 8
#define MEM_SUFFIX b_raw
#define MEM_SUFFIX w_raw
#define MEM_SUFFIX l_raw
#define MEM_SUFFIX q_raw
#endif
#if DATA_BITS == 8
#define MEM_SUFFIX b_kernel
#define MEM_SUFFIX w_kernel
#define MEM_SUFFIX l_kernel
#define MEM_SUFFIX q_kernel
#endif
#if DATA_BITS == 8
#define MEM_SUFFIX b_user
#define MEM_SUFFIX w_user
#define MEM_SUFFIX l_user
#define MEM_SUFFIX q_user
#endif
#else
#endif
#else
#define MEM_SUFFIX SUFFIX
#endif
{
int count;
if (T1 & SHIFT1_MASK) {
#ifdef MEM_WRITE
#else
/* gcc 3.2 workaround. This is really a bug in gcc. */
#endif
}
FORCE_RET();
}
{
int count;
if (T1 & SHIFT1_MASK) {
#ifdef MEM_WRITE
#else
/* gcc 3.2 workaround. This is really a bug in gcc. */
#endif
}
FORCE_RET();
}
{
int count;
if (count) {
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
int count;
if (count) {
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
#if DATA_BITS == 16
#endif
if (count) {
if (count > 1)
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
#if DATA_BITS == 16
#endif
if (count) {
if (count > 1)
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
int count;
if (count) {
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
int count;
if (count) {
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
int count;
if (count) {
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
#if DATA_BITS == 16
/* XXX: overflow flag might be incorrect in some cases in shldw */
{
int count;
T1 &= 0xffff;
if (count > 16)
#ifdef MEM_WRITE
#endif
}
{
int count;
if (count) {
T1 &= 0xffff;
if (count > 16)
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
int count;
if (count > 16)
#ifdef MEM_WRITE
#endif
}
{
int count;
if (count) {
if (count > 16)
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
#endif
#if DATA_BITS >= 32
{
int count;
#ifdef MEM_WRITE
#endif
}
{
int count;
if (count) {
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
{
int count;
#ifdef MEM_WRITE
#endif
}
{
int count;
if (count) {
#ifdef MEM_WRITE
#endif
}
FORCE_RET();
}
#endif
{
int cf;
#ifdef MEM_WRITE
#endif
}
{
int cf;
#ifdef MEM_WRITE
#endif
}
{
#ifdef MEM_WRITE
#endif
} else {
}
FORCE_RET();
}