qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

sysemu_helper.h.inc (6615B)


      1 /*
      2  *  QEMU MIPS sysemu helpers
      3  *
      4  *  Copyright (c) 2004-2005 Jocelyn Mayer
      5  *  Copyright (c) 2006 Marius Groeger (FPU operations)
      6  *  Copyright (c) 2006 Thiemo Seufer (MIPS32R2 support)
      7  *  Copyright (c) 2009 CodeSourcery (MIPS16 and microMIPS support)
      8  *
      9  * SPDX-License-Identifier: LGPL-2.1-or-later
     10  */
     11 
     12 /* CP0 helpers */
     13 DEF_HELPER_1(mfc0_mvpcontrol, tl, env)
     14 DEF_HELPER_1(mfc0_mvpconf0, tl, env)
     15 DEF_HELPER_1(mfc0_mvpconf1, tl, env)
     16 DEF_HELPER_1(mftc0_vpecontrol, tl, env)
     17 DEF_HELPER_1(mftc0_vpeconf0, tl, env)
     18 DEF_HELPER_1(mfc0_random, tl, env)
     19 DEF_HELPER_1(mfc0_tcstatus, tl, env)
     20 DEF_HELPER_1(mftc0_tcstatus, tl, env)
     21 DEF_HELPER_1(mfc0_tcbind, tl, env)
     22 DEF_HELPER_1(mftc0_tcbind, tl, env)
     23 DEF_HELPER_1(mfc0_tcrestart, tl, env)
     24 DEF_HELPER_1(mftc0_tcrestart, tl, env)
     25 DEF_HELPER_1(mfc0_tchalt, tl, env)
     26 DEF_HELPER_1(mftc0_tchalt, tl, env)
     27 DEF_HELPER_1(mfc0_tccontext, tl, env)
     28 DEF_HELPER_1(mftc0_tccontext, tl, env)
     29 DEF_HELPER_1(mfc0_tcschedule, tl, env)
     30 DEF_HELPER_1(mftc0_tcschedule, tl, env)
     31 DEF_HELPER_1(mfc0_tcschefback, tl, env)
     32 DEF_HELPER_1(mftc0_tcschefback, tl, env)
     33 DEF_HELPER_1(mfc0_count, tl, env)
     34 DEF_HELPER_1(mfc0_saar, tl, env)
     35 DEF_HELPER_1(mfhc0_saar, tl, env)
     36 DEF_HELPER_1(mftc0_entryhi, tl, env)
     37 DEF_HELPER_1(mftc0_status, tl, env)
     38 DEF_HELPER_1(mftc0_cause, tl, env)
     39 DEF_HELPER_1(mftc0_epc, tl, env)
     40 DEF_HELPER_1(mftc0_ebase, tl, env)
     41 DEF_HELPER_2(mftc0_configx, tl, env, tl)
     42 DEF_HELPER_1(mfc0_lladdr, tl, env)
     43 DEF_HELPER_1(mfc0_maar, tl, env)
     44 DEF_HELPER_1(mfhc0_maar, tl, env)
     45 DEF_HELPER_2(mfc0_watchlo, tl, env, i32)
     46 DEF_HELPER_2(mfc0_watchhi, tl, env, i32)
     47 DEF_HELPER_2(mfhc0_watchhi, tl, env, i32)
     48 DEF_HELPER_1(mfc0_debug, tl, env)
     49 DEF_HELPER_1(mftc0_debug, tl, env)
     50 #ifdef TARGET_MIPS64
     51 DEF_HELPER_1(dmfc0_tcrestart, tl, env)
     52 DEF_HELPER_1(dmfc0_tchalt, tl, env)
     53 DEF_HELPER_1(dmfc0_tccontext, tl, env)
     54 DEF_HELPER_1(dmfc0_tcschedule, tl, env)
     55 DEF_HELPER_1(dmfc0_tcschefback, tl, env)
     56 DEF_HELPER_1(dmfc0_lladdr, tl, env)
     57 DEF_HELPER_1(dmfc0_maar, tl, env)
     58 DEF_HELPER_2(dmfc0_watchlo, tl, env, i32)
     59 DEF_HELPER_2(dmfc0_watchhi, tl, env, i32)
     60 DEF_HELPER_1(dmfc0_saar, tl, env)
     61 #endif /* TARGET_MIPS64 */
     62 
     63 DEF_HELPER_2(mtc0_index, void, env, tl)
     64 DEF_HELPER_2(mtc0_mvpcontrol, void, env, tl)
     65 DEF_HELPER_2(mtc0_vpecontrol, void, env, tl)
     66 DEF_HELPER_2(mttc0_vpecontrol, void, env, tl)
     67 DEF_HELPER_2(mtc0_vpeconf0, void, env, tl)
     68 DEF_HELPER_2(mttc0_vpeconf0, void, env, tl)
     69 DEF_HELPER_2(mtc0_vpeconf1, void, env, tl)
     70 DEF_HELPER_2(mtc0_yqmask, void, env, tl)
     71 DEF_HELPER_2(mtc0_vpeopt, void, env, tl)
     72 DEF_HELPER_2(mtc0_entrylo0, void, env, tl)
     73 DEF_HELPER_2(mtc0_tcstatus, void, env, tl)
     74 DEF_HELPER_2(mttc0_tcstatus, void, env, tl)
     75 DEF_HELPER_2(mtc0_tcbind, void, env, tl)
     76 DEF_HELPER_2(mttc0_tcbind, void, env, tl)
     77 DEF_HELPER_2(mtc0_tcrestart, void, env, tl)
     78 DEF_HELPER_2(mttc0_tcrestart, void, env, tl)
     79 DEF_HELPER_2(mtc0_tchalt, void, env, tl)
     80 DEF_HELPER_2(mttc0_tchalt, void, env, tl)
     81 DEF_HELPER_2(mtc0_tccontext, void, env, tl)
     82 DEF_HELPER_2(mttc0_tccontext, void, env, tl)
     83 DEF_HELPER_2(mtc0_tcschedule, void, env, tl)
     84 DEF_HELPER_2(mttc0_tcschedule, void, env, tl)
     85 DEF_HELPER_2(mtc0_tcschefback, void, env, tl)
     86 DEF_HELPER_2(mttc0_tcschefback, void, env, tl)
     87 DEF_HELPER_2(mtc0_entrylo1, void, env, tl)
     88 DEF_HELPER_2(mtc0_context, void, env, tl)
     89 DEF_HELPER_2(mtc0_memorymapid, void, env, tl)
     90 DEF_HELPER_2(mtc0_pagemask, void, env, tl)
     91 DEF_HELPER_2(mtc0_pagegrain, void, env, tl)
     92 DEF_HELPER_2(mtc0_segctl0, void, env, tl)
     93 DEF_HELPER_2(mtc0_segctl1, void, env, tl)
     94 DEF_HELPER_2(mtc0_segctl2, void, env, tl)
     95 DEF_HELPER_2(mtc0_pwfield, void, env, tl)
     96 DEF_HELPER_2(mtc0_pwsize, void, env, tl)
     97 DEF_HELPER_2(mtc0_wired, void, env, tl)
     98 DEF_HELPER_2(mtc0_srsconf0, void, env, tl)
     99 DEF_HELPER_2(mtc0_srsconf1, void, env, tl)
    100 DEF_HELPER_2(mtc0_srsconf2, void, env, tl)
    101 DEF_HELPER_2(mtc0_srsconf3, void, env, tl)
    102 DEF_HELPER_2(mtc0_srsconf4, void, env, tl)
    103 DEF_HELPER_2(mtc0_hwrena, void, env, tl)
    104 DEF_HELPER_2(mtc0_pwctl, void, env, tl)
    105 DEF_HELPER_2(mtc0_count, void, env, tl)
    106 DEF_HELPER_2(mtc0_saari, void, env, tl)
    107 DEF_HELPER_2(mtc0_saar, void, env, tl)
    108 DEF_HELPER_2(mthc0_saar, void, env, tl)
    109 DEF_HELPER_2(mtc0_entryhi, void, env, tl)
    110 DEF_HELPER_2(mttc0_entryhi, void, env, tl)
    111 DEF_HELPER_2(mtc0_compare, void, env, tl)
    112 DEF_HELPER_2(mtc0_status, void, env, tl)
    113 DEF_HELPER_2(mttc0_status, void, env, tl)
    114 DEF_HELPER_2(mtc0_intctl, void, env, tl)
    115 DEF_HELPER_2(mtc0_srsctl, void, env, tl)
    116 DEF_HELPER_2(mtc0_cause, void, env, tl)
    117 DEF_HELPER_2(mttc0_cause, void, env, tl)
    118 DEF_HELPER_2(mtc0_ebase, void, env, tl)
    119 DEF_HELPER_2(mttc0_ebase, void, env, tl)
    120 DEF_HELPER_2(mtc0_config0, void, env, tl)
    121 DEF_HELPER_2(mtc0_config2, void, env, tl)
    122 DEF_HELPER_2(mtc0_config3, void, env, tl)
    123 DEF_HELPER_2(mtc0_config4, void, env, tl)
    124 DEF_HELPER_2(mtc0_config5, void, env, tl)
    125 DEF_HELPER_2(mtc0_lladdr, void, env, tl)
    126 DEF_HELPER_2(mtc0_maar, void, env, tl)
    127 DEF_HELPER_2(mthc0_maar, void, env, tl)
    128 DEF_HELPER_2(mtc0_maari, void, env, tl)
    129 DEF_HELPER_3(mtc0_watchlo, void, env, tl, i32)
    130 DEF_HELPER_3(mtc0_watchhi, void, env, tl, i32)
    131 DEF_HELPER_3(mthc0_watchhi, void, env, tl, i32)
    132 DEF_HELPER_2(mtc0_xcontext, void, env, tl)
    133 DEF_HELPER_2(mtc0_framemask, void, env, tl)
    134 DEF_HELPER_2(mtc0_debug, void, env, tl)
    135 DEF_HELPER_2(mttc0_debug, void, env, tl)
    136 DEF_HELPER_2(mtc0_performance0, void, env, tl)
    137 DEF_HELPER_2(mtc0_errctl, void, env, tl)
    138 DEF_HELPER_2(mtc0_taglo, void, env, tl)
    139 DEF_HELPER_2(mtc0_datalo, void, env, tl)
    140 DEF_HELPER_2(mtc0_taghi, void, env, tl)
    141 DEF_HELPER_2(mtc0_datahi, void, env, tl)
    142 
    143 #if defined(TARGET_MIPS64)
    144 DEF_HELPER_2(dmtc0_entrylo0, void, env, i64)
    145 DEF_HELPER_2(dmtc0_entrylo1, void, env, i64)
    146 #endif
    147 
    148 /* MIPS MT functions */
    149 DEF_HELPER_2(mftgpr, tl, env, i32)
    150 DEF_HELPER_2(mftlo, tl, env, i32)
    151 DEF_HELPER_2(mfthi, tl, env, i32)
    152 DEF_HELPER_2(mftacx, tl, env, i32)
    153 DEF_HELPER_1(mftdsp, tl, env)
    154 DEF_HELPER_3(mttgpr, void, env, tl, i32)
    155 DEF_HELPER_3(mttlo, void, env, tl, i32)
    156 DEF_HELPER_3(mtthi, void, env, tl, i32)
    157 DEF_HELPER_3(mttacx, void, env, tl, i32)
    158 DEF_HELPER_2(mttdsp, void, env, tl)
    159 DEF_HELPER_0(dmt, tl)
    160 DEF_HELPER_0(emt, tl)
    161 DEF_HELPER_1(dvpe, tl, env)
    162 DEF_HELPER_1(evpe, tl, env)
    163 
    164 /* R6 Multi-threading */
    165 DEF_HELPER_1(dvp, tl, env)
    166 DEF_HELPER_1(evp, tl, env)
    167 
    168 /* TLB */
    169 DEF_HELPER_1(tlbwi, void, env)
    170 DEF_HELPER_1(tlbwr, void, env)
    171 DEF_HELPER_1(tlbp, void, env)
    172 DEF_HELPER_1(tlbr, void, env)
    173 DEF_HELPER_1(tlbinv, void, env)
    174 DEF_HELPER_1(tlbinvf, void, env)
    175 DEF_HELPER_3(ginvt, void, env, tl, i32)
    176 
    177 /* Special */
    178 DEF_HELPER_1(di, tl, env)
    179 DEF_HELPER_1(ei, tl, env)
    180 DEF_HELPER_1(eret, void, env)
    181 DEF_HELPER_1(eretnc, void, env)
    182 DEF_HELPER_1(deret, void, env)
    183 DEF_HELPER_3(cache, void, env, tl, i32)