src/emu/cpu/m68000/m68kfpu.c
| r14480 | r14481 | |
| 1783 | 1783 | { |
| 1784 | 1784 | if(m68k->cpu_type & CPU_TYPE_040) |
| 1785 | 1785 | { |
| 1786 | | m68ki_write_32(m68k, addr, 0x41000000); |
| 1787 | | return inc ? 4 : -4; |
| 1786 | if(inc) |
| 1787 | { |
| 1788 | m68ki_write_32(m68k, addr, 0x41000000); |
| 1789 | return 4; |
| 1790 | } |
| 1791 | else |
| 1792 | { |
| 1793 | m68ki_write_32(m68k, addr-4, 0x41000000); |
| 1794 | return -4; |
| 1795 | } |
| 1788 | 1796 | } |
| 1789 | 1797 | |
| 1790 | 1798 | if (inc) |
| r14480 | r14481 | |
| 1848 | 1856 | |
| 1849 | 1857 | static void m68040_do_frestore(m68ki_cpu_core *m68k, UINT32 addr, int reg) |
| 1850 | 1858 | { |
| 1859 | bool m40 = m68k->cpu_type & CPU_TYPE_040; |
| 1851 | 1860 | UINT32 temp = m68ki_read_32(m68k, addr); |
| 1852 | 1861 | |
| 1853 | 1862 | // check for NULL frame |
| r14480 | r14481 | |
| 1859 | 1868 | if (reg != -1) |
| 1860 | 1869 | { |
| 1861 | 1870 | // how about an IDLE frame? |
| 1862 | | if ((temp & 0x00ff0000) == 0x00180000) |
| 1871 | if (!m40 && ((temp & 0x00ff0000) == 0x00180000)) |
| 1863 | 1872 | { |
| 1864 | | REG_A(m68k)[reg] += (m68k->cpu_type & CPU_TYPE_040) ? 4 : 7*4; |
| 1873 | REG_A(m68k)[reg] += 7*4; |
| 1874 | } |
| 1875 | else if (m40 && ((temp & 0xffff0000) == 0x41000000)) |
| 1876 | { |
| 1877 | REG_A(m68k)[reg] += 4; |
| 1865 | 1878 | } // check UNIMP |
| 1866 | 1879 | else if ((temp & 0x00ff0000) == 0x00380000) |
| 1867 | 1880 | { |