Revision b5d51029 target-alpha/translate.c
b/target-alpha/translate.c | ||
---|---|---|
1793 | 1793 |
tcg_gen_movi_i64(addr, disp12); |
1794 | 1794 |
switch ((insn >> 12) & 0xF) { |
1795 | 1795 |
case 0x0: |
1796 |
/* Longword physical access */ |
|
1796 |
/* Longword physical access (hw_ldl/p) */
|
|
1797 | 1797 |
gen_helper_ldl_raw(cpu_ir[ra], addr); |
1798 | 1798 |
break; |
1799 | 1799 |
case 0x1: |
1800 |
/* Quadword physical access */ |
|
1800 |
/* Quadword physical access (hw_ldq/p) */
|
|
1801 | 1801 |
gen_helper_ldq_raw(cpu_ir[ra], addr); |
1802 | 1802 |
break; |
1803 | 1803 |
case 0x2: |
1804 |
/* Longword physical access with lock */ |
|
1804 |
/* Longword physical access with lock (hw_ldl_l/p) */
|
|
1805 | 1805 |
gen_helper_ldl_l_raw(cpu_ir[ra], addr); |
1806 | 1806 |
break; |
1807 | 1807 |
case 0x3: |
1808 |
/* Quadword physical access with lock */ |
|
1808 |
/* Quadword physical access with lock (hw_ldq_l/p) */
|
|
1809 | 1809 |
gen_helper_ldq_l_raw(cpu_ir[ra], addr); |
1810 | 1810 |
break; |
1811 | 1811 |
case 0x4: |
1812 |
/* Longword virtual PTE fetch */ |
|
1813 |
gen_helper_ldl_kernel(cpu_ir[ra], addr);
|
|
1812 |
/* Longword virtual PTE fetch (hw_ldl/v) */
|
|
1813 |
tcg_gen_qemu_ld32s(cpu_ir[ra], addr, 0);
|
|
1814 | 1814 |
break; |
1815 | 1815 |
case 0x5: |
1816 |
/* Quadword virtual PTE fetch */ |
|
1817 |
gen_helper_ldq_kernel(cpu_ir[ra], addr);
|
|
1816 |
/* Quadword virtual PTE fetch (hw_ldq/v) */
|
|
1817 |
tcg_gen_qemu_ld64(cpu_ir[ra], addr, 0);
|
|
1818 | 1818 |
break; |
1819 | 1819 |
case 0x6: |
1820 | 1820 |
/* Incpu_ir[ra]id */ |
1821 |
goto incpu_ir[ra]id_opc;
|
|
1821 |
goto invalid_opc;
|
|
1822 | 1822 |
case 0x7: |
1823 | 1823 |
/* Incpu_ir[ra]id */ |
1824 |
goto incpu_ir[ra]id_opc;
|
|
1824 |
goto invalid_opc;
|
|
1825 | 1825 |
case 0x8: |
1826 |
/* Longword virtual access */ |
|
1826 |
/* Longword virtual access (hw_ldl) */
|
|
1827 | 1827 |
gen_helper_st_virt_to_phys(addr, addr); |
1828 | 1828 |
gen_helper_ldl_raw(cpu_ir[ra], addr); |
1829 | 1829 |
break; |
1830 | 1830 |
case 0x9: |
1831 |
/* Quadword virtual access */ |
|
1831 |
/* Quadword virtual access (hw_ldq) */
|
|
1832 | 1832 |
gen_helper_st_virt_to_phys(addr, addr); |
1833 | 1833 |
gen_helper_ldq_raw(cpu_ir[ra], addr); |
1834 | 1834 |
break; |
1835 | 1835 |
case 0xA: |
1836 |
/* Longword virtual access with protection check */ |
|
1837 |
tcg_gen_qemu_ld32s(cpu_ir[ra], addr, ctx->flags);
|
|
1836 |
/* Longword virtual access with protection check (hw_ldl/w) */
|
|
1837 |
tcg_gen_qemu_ld32s(cpu_ir[ra], addr, 0);
|
|
1838 | 1838 |
break; |
1839 | 1839 |
case 0xB: |
1840 |
/* Quadword virtual access with protection check */ |
|
1841 |
tcg_gen_qemu_ld64(cpu_ir[ra], addr, ctx->flags);
|
|
1840 |
/* Quadword virtual access with protection check (hw_ldq/w) */
|
|
1841 |
tcg_gen_qemu_ld64(cpu_ir[ra], addr, 0);
|
|
1842 | 1842 |
break; |
1843 | 1843 |
case 0xC: |
1844 |
/* Longword virtual access with altenate access mode */
|
|
1844 |
/* Longword virtual access with alt access mode (hw_ldl/a)*/
|
|
1845 | 1845 |
gen_helper_set_alt_mode(); |
1846 | 1846 |
gen_helper_st_virt_to_phys(addr, addr); |
1847 | 1847 |
gen_helper_ldl_raw(cpu_ir[ra], addr); |
1848 | 1848 |
gen_helper_restore_mode(); |
1849 | 1849 |
break; |
1850 | 1850 |
case 0xD: |
1851 |
/* Quadword virtual access with altenate access mode */
|
|
1851 |
/* Quadword virtual access with alt access mode (hw_ldq/a) */
|
|
1852 | 1852 |
gen_helper_set_alt_mode(); |
1853 | 1853 |
gen_helper_st_virt_to_phys(addr, addr); |
1854 | 1854 |
gen_helper_ldq_raw(cpu_ir[ra], addr); |
... | ... | |
1856 | 1856 |
break; |
1857 | 1857 |
case 0xE: |
1858 | 1858 |
/* Longword virtual access with alternate access mode and |
1859 |
* protection checks |
|
1859 |
* protection checks (hw_ldl/wa)
|
|
1860 | 1860 |
*/ |
1861 | 1861 |
gen_helper_set_alt_mode(); |
1862 | 1862 |
gen_helper_ldl_data(cpu_ir[ra], addr); |
... | ... | |
1864 | 1864 |
break; |
1865 | 1865 |
case 0xF: |
1866 | 1866 |
/* Quadword virtual access with alternate access mode and |
1867 |
* protection checks |
|
1867 |
* protection checks (hw_ldq/wa)
|
|
1868 | 1868 |
*/ |
1869 | 1869 |
gen_helper_set_alt_mode(); |
1870 | 1870 |
gen_helper_ldq_data(cpu_ir[ra], addr); |
Also available in: Unified diff