--- np2/i386c/ia32/instructions/shift_rotate.mcr 2003/12/08 00:55:32 1.1 +++ np2/i386c/ia32/instructions/shift_rotate.mcr 2004/02/19 03:04:02 1.3 @@ -1,4 +1,4 @@ -/* $Id: shift_rotate.mcr,v 1.1 2003/12/08 00:55:32 yui Exp $ */ +/* $Id: shift_rotate.mcr,v 1.3 2004/02/19 03:04:02 yui Exp $ */ /* * Copyright (c) 2003 NONAKA Kimihiro @@ -131,9 +131,6 @@ do { \ if ((d) == 0) { \ CPU_FLAGL |= Z_FLAG; \ } \ - if ((d) & 0x80000000) { \ - CPU_FLAGL |= S_FLAG; \ - } \ CPU_FLAGL |= (szpcflag[(BYTE)(d)] & P_FLAG); \ } while (/*CONSTCOND*/ 0) @@ -188,9 +185,6 @@ do { \ if ((s) == 0) { \ CPU_FLAGL |= Z_FLAG; \ } \ - if ((s) & 0x80000000) { \ - CPU_FLAGL |= S_FLAG; \ - } \ CPU_FLAGL |= (szpcflag[(BYTE)(s)] & P_FLAG); \ } \ (d) = (s); \ @@ -203,7 +197,7 @@ do { \ do { \ (d) = (s) << 1; \ CPU_OV = ((s) ^ (d)) & 0x80; \ - CPU_FLAGL = szpcflag[(d) & 0x1ff] | A_FLAG; \ + CPU_FLAGL = (BYTE)(szpcflag[(d) & 0x1ff] | A_FLAG); \ } while (/*CONSTCOND*/ 0) #define _WORD_SHL1(d, s) \ @@ -239,7 +233,7 @@ do { \ } \ (s) <<= (c); \ (s) &= 0x1ff; \ - CPU_FLAGL = (szpcflag[(s) & 0x1ff] | A_FLAG); \ + CPU_FLAGL = (BYTE)(szpcflag[(s) & 0x1ff] | A_FLAG); \ CPU_OV = ((s) ^ ((s) >> 1)) & 0x80; \ } \ (d) = (s); \ @@ -255,7 +249,7 @@ do { \ } \ (s) <<= (c); \ (s) &= 0x1ffff; \ - CPU_FLAGL = szpflag_w[(WORD)(s)] | A_FLAG; \ + CPU_FLAGL = (BYTE)(szpflag_w[(WORD)(s)] | A_FLAG); \ CPU_FLAGL |= (BYTE)((s) >> 16); /* C_FLAG */ \ } \ (d) = (s); \ @@ -303,17 +297,6 @@ do { \ CPU_FLAGL |= szpflag_w[(WORD)(d)] | A_FLAG; \ CPU_OV = (d) & 0x8000; \ } \ - /* XXX - CPU_FLAGL = (BYTE)(((d) >> ((c) - 1)) & 1); \ - (d) |= (s) << 16; \ - (d) >>= (c); \ - if ((c) > 16) { \ - (d) |= (s) << (32 - (c)); \ - } \ - (d) &= 0xffff; \ - CPU_FLAGL |= (szpflag_w[(d)] | A_FLAG); \ - CPU_OV = (d) & 0x8000; \ - */ \ } \ } while (/*CONSTCOND*/ 0) @@ -350,17 +333,6 @@ do { \ CPU_FLAGL |= szpflag_w[(d)] | A_FLAG; \ CPU_OV = (d) & 0x8000; \ } \ - /* XXX - CPU_FLAGL = (BYTE)(((d) >> (16 - (c))) & 1); \ - (d) = ((d) << 16) | (s); \ - (d) <<= (c); \ - if ((c) > 16) { \ - (d) |= ((s) << ((c) - 16)); \ - } \ - (d) >>= 16; \ - CPU_FLAGL |= szpflag_w[(d)] | A_FLAG; \ - CPU_OV = (d) & 0x8000; \ - */ \ } \ } while (/*CONSTCOND*/ 0)