135c135
< imm = (IMM22 << 10) & 0xFFFFFC00;
---
> imm = (IMM22 & 0x3FFFFF) << 10;
160,161c160
< if(_numSrcRegs > 0)
< printReg(os, _srcRegIdx[1]);
---
> printSrcReg(os, 1);
163,165c162
< if(_numDestRegs > 0)
< printReg(os, _destRegIdx[0]);
<
---
> printDestReg(os, 0);
176c173
< if(_srcRegIdx[0] == 0)
---
> if(_numSrcRegs > 0 && _srcRegIdx[0] == 0)
179d175
< {
181,184d176
< if(_numDestRegs > 0)
< printReg(os, _destRegIdx[0]);
< return true;
< }
188,191c180
< ccprintf(os, ", 0x%x, ", imm);
< if(_numDestRegs > 0)
< printReg(os, _destRegIdx[0]);
< return true;
---
> ccprintf(os, " 0x%x, ", imm);
192a182,183
> printDestReg(os, 0);
> return true;
197,198c188
< if(_numSrcRegs > 0)
< printReg(os, _srcRegIdx[0]);
---
> printSrcReg(os, 0);
200,201c190
< if(_numDestRegs > 0)
< printReg(os, _destRegIdx[0]);
---
> printDestReg(os, 0);
213,231c202,208
< if(!printPseudoOps(response, pc, symtab))
< {
< printMnemonic(response, mnemonic);
< if (_numSrcRegs > 0)
< {
< printReg(response, _srcRegIdx[0]);
< for(int x = 1; x < _numSrcRegs; x++)
< {
< response << ", ";
< printReg(response, _srcRegIdx[x]);
< }
< }
< if (_numDestRegs > 0)
< {
< if(_numSrcRegs > 0)
< response << ", ";
< printReg(response, _destRegIdx[0]);
< }
< }
---
> if(printPseudoOps(response, pc, symtab))
> return response.str();
> printMnemonic(response, mnemonic);
> printRegArray(response, _srcRegIdx, _numSrcRegs);
> if(_numDestRegs && _numSrcRegs)
> response << ", ";
> printDestReg(response, 0);
240,260c217,226
< if(!printPseudoOps(response, pc, symtab))
< {
< printMnemonic(response, mnemonic);
< if (_numSrcRegs > 0)
< {
< printReg(response, _srcRegIdx[0]);
< for(int x = 1; x < _numSrcRegs - 1; x++)
< {
< response << ", ";
< printReg(response, _srcRegIdx[x]);
< }
< }
< if(_numSrcRegs > 0)
< response << ", ";
< ccprintf(response, "0x%x", imm);
< if (_numDestRegs > 0)
< {
< response << ", ";
< printReg(response, _destRegIdx[0]);
< }
< }
---
> if(printPseudoOps(response, pc, symtab))
> return response.str();
> printMnemonic(response, mnemonic);
> printRegArray(response, _srcRegIdx, _numSrcRegs);
> if(_numSrcRegs > 0)
> response << ", ";
> ccprintf(response, "0x%x", imm);
> if(_numDestRegs > 0)
> response << ", ";
> printDestReg(response, 0);
270,271d235
< if(_numSrcRegs > 0)
< response << ", ";
273c237
< printReg(response, _destRegIdx[0]);
---
> printDestReg(response, 0);
319,326c283
< uint8_t tmp_ccriccc;
< uint8_t tmp_ccriccv;
< uint8_t tmp_ccriccz;
< uint8_t tmp_ccriccn;
< uint8_t tmp_ccrxccc;
< uint8_t tmp_ccrxccv;
< uint8_t tmp_ccrxccz;
< uint8_t tmp_ccrxccn;
---
> uint16_t _ic, _iv, _iz, _in, _xc, _xv, _xz, _xn;
328,335c285,292
< tmp_ccriccn = (Rd >> 31) & 1;
< tmp_ccriccz = ((Rd & 0xFFFFFFFF) == 0);
< tmp_ccrxccn = (Rd >> 63) & 1;
< tmp_ccrxccz = (Rd == 0);
< tmp_ccriccv = %(ivValue)s & 1;
< tmp_ccriccc = %(icValue)s & 1;
< tmp_ccrxccv = %(xvValue)s & 1;
< tmp_ccrxccc = %(xcValue)s & 1;
---
> _in = (Rd >> 31) & 1;
> _iz = ((Rd & 0xFFFFFFFF) == 0);
> _xn = (Rd >> 63) & 1;
> _xz = (Rd == 0);
> _iv = %(ivValue)s & 1;
> _ic = %(icValue)s & 1;
> _xv = %(xvValue)s & 1;
> _xc = %(xcValue)s & 1;
337,340c294,295
< Ccr = tmp_ccriccc | tmp_ccriccv << 1 |
< tmp_ccriccz << 2 | tmp_ccriccn << 3|
< tmp_ccrxccc << 4 | tmp_ccrxccv << 5|
< tmp_ccrxccz << 6| tmp_ccrxccn << 7;
---
> Ccr = _ic << 0 | _iv << 1 | _iz << 2 | _in << 3 |
> _xc << 4 | _xv << 5 | _xz << 6 | _xn << 7;
343,350c298,305
< DPRINTF(Sparc, "in = %%d\\n", (uint16_t)tmp_ccriccn);
< DPRINTF(Sparc, "iz = %%d\\n", (uint16_t)tmp_ccriccz);
< DPRINTF(Sparc, "xn = %%d\\n", (uint16_t)tmp_ccrxccn);
< DPRINTF(Sparc, "xz = %%d\\n", (uint16_t)tmp_ccrxccz);
< DPRINTF(Sparc, "iv = %%d\\n", (uint16_t)tmp_ccriccv);
< DPRINTF(Sparc, "ic = %%d\\n", (uint16_t)tmp_ccriccc);
< DPRINTF(Sparc, "xv = %%d\\n", (uint16_t)tmp_ccrxccv);
< DPRINTF(Sparc, "xc = %%d\\n", (uint16_t)tmp_ccrxccc);
---
> DPRINTF(Sparc, "in = %%d\\n", _in);
> DPRINTF(Sparc, "iz = %%d\\n", _iz);
> DPRINTF(Sparc, "xn = %%d\\n", _xn);
> DPRINTF(Sparc, "xz = %%d\\n", _xz);
> DPRINTF(Sparc, "iv = %%d\\n", _iv);
> DPRINTF(Sparc, "ic = %%d\\n", _ic);
> DPRINTF(Sparc, "xv = %%d\\n", _xv);
> DPRINTF(Sparc, "xc = %%d\\n", _xc);