@ -2451,84 +2451,84 @@ static bool cdc_zero(uint32_t *psw)
static void save_context_upper ( CPUTriCoreState * env , uint32_t ea )
{
cpu_stl_data ( env , ea , env - > PCXI ) ;
cpu_stl_data ( env , ea + 4 , psw_read ( env ) ) ;
cpu_stl_data ( env , ea + 8 , env - > gpr_a [ 10 ] ) ;
cpu_stl_data ( env , ea + 12 , env - > gpr_a [ 11 ] ) ;
cpu_stl_data ( env , ea + 16 , env - > gpr_d [ 8 ] ) ;
cpu_stl_data ( env , ea + 20 , env - > gpr_d [ 9 ] ) ;
cpu_stl_data ( env , ea + 24 , env - > gpr_d [ 10 ] ) ;
cpu_stl_data ( env , ea + 28 , env - > gpr_d [ 11 ] ) ;
cpu_stl_data ( env , ea + 32 , env - > gpr_a [ 12 ] ) ;
cpu_stl_data ( env , ea + 36 , env - > gpr_a [ 13 ] ) ;
cpu_stl_data ( env , ea + 40 , env - > gpr_a [ 14 ] ) ;
cpu_stl_data ( env , ea + 44 , env - > gpr_a [ 15 ] ) ;
cpu_stl_data ( env , ea + 48 , env - > gpr_d [ 12 ] ) ;
cpu_stl_data ( env , ea + 52 , env - > gpr_d [ 13 ] ) ;
cpu_stl_data ( env , ea + 56 , env - > gpr_d [ 14 ] ) ;
cpu_stl_data ( env , ea + 60 , env - > gpr_d [ 15 ] ) ;
cpu_stl_le_ data ( env , ea , env - > PCXI ) ;
cpu_stl_le_ data ( env , ea + 4 , psw_read ( env ) ) ;
cpu_stl_le_ data ( env , ea + 8 , env - > gpr_a [ 10 ] ) ;
cpu_stl_le_ data ( env , ea + 12 , env - > gpr_a [ 11 ] ) ;
cpu_stl_le_ data ( env , ea + 16 , env - > gpr_d [ 8 ] ) ;
cpu_stl_le_ data ( env , ea + 20 , env - > gpr_d [ 9 ] ) ;
cpu_stl_le_ data ( env , ea + 24 , env - > gpr_d [ 10 ] ) ;
cpu_stl_le_ data ( env , ea + 28 , env - > gpr_d [ 11 ] ) ;
cpu_stl_le_ data ( env , ea + 32 , env - > gpr_a [ 12 ] ) ;
cpu_stl_le_ data ( env , ea + 36 , env - > gpr_a [ 13 ] ) ;
cpu_stl_le_ data ( env , ea + 40 , env - > gpr_a [ 14 ] ) ;
cpu_stl_le_ data ( env , ea + 44 , env - > gpr_a [ 15 ] ) ;
cpu_stl_le_ data ( env , ea + 48 , env - > gpr_d [ 12 ] ) ;
cpu_stl_le_ data ( env , ea + 52 , env - > gpr_d [ 13 ] ) ;
cpu_stl_le_ data ( env , ea + 56 , env - > gpr_d [ 14 ] ) ;
cpu_stl_le_ data ( env , ea + 60 , env - > gpr_d [ 15 ] ) ;
}
static void save_context_lower ( CPUTriCoreState * env , uint32_t ea )
{
cpu_stl_data ( env , ea , env - > PCXI ) ;
cpu_stl_data ( env , ea + 4 , env - > gpr_a [ 11 ] ) ;
cpu_stl_data ( env , ea + 8 , env - > gpr_a [ 2 ] ) ;
cpu_stl_data ( env , ea + 12 , env - > gpr_a [ 3 ] ) ;
cpu_stl_data ( env , ea + 16 , env - > gpr_d [ 0 ] ) ;
cpu_stl_data ( env , ea + 20 , env - > gpr_d [ 1 ] ) ;
cpu_stl_data ( env , ea + 24 , env - > gpr_d [ 2 ] ) ;
cpu_stl_data ( env , ea + 28 , env - > gpr_d [ 3 ] ) ;
cpu_stl_data ( env , ea + 32 , env - > gpr_a [ 4 ] ) ;
cpu_stl_data ( env , ea + 36 , env - > gpr_a [ 5 ] ) ;
cpu_stl_data ( env , ea + 40 , env - > gpr_a [ 6 ] ) ;
cpu_stl_data ( env , ea + 44 , env - > gpr_a [ 7 ] ) ;
cpu_stl_data ( env , ea + 48 , env - > gpr_d [ 4 ] ) ;
cpu_stl_data ( env , ea + 52 , env - > gpr_d [ 5 ] ) ;
cpu_stl_data ( env , ea + 56 , env - > gpr_d [ 6 ] ) ;
cpu_stl_data ( env , ea + 60 , env - > gpr_d [ 7 ] ) ;
cpu_stl_le_ data ( env , ea , env - > PCXI ) ;
cpu_stl_le_ data ( env , ea + 4 , env - > gpr_a [ 11 ] ) ;
cpu_stl_le_ data ( env , ea + 8 , env - > gpr_a [ 2 ] ) ;
cpu_stl_le_ data ( env , ea + 12 , env - > gpr_a [ 3 ] ) ;
cpu_stl_le_ data ( env , ea + 16 , env - > gpr_d [ 0 ] ) ;
cpu_stl_le_ data ( env , ea + 20 , env - > gpr_d [ 1 ] ) ;
cpu_stl_le_ data ( env , ea + 24 , env - > gpr_d [ 2 ] ) ;
cpu_stl_le_ data ( env , ea + 28 , env - > gpr_d [ 3 ] ) ;
cpu_stl_le_ data ( env , ea + 32 , env - > gpr_a [ 4 ] ) ;
cpu_stl_le_ data ( env , ea + 36 , env - > gpr_a [ 5 ] ) ;
cpu_stl_le_ data ( env , ea + 40 , env - > gpr_a [ 6 ] ) ;
cpu_stl_le_ data ( env , ea + 44 , env - > gpr_a [ 7 ] ) ;
cpu_stl_le_ data ( env , ea + 48 , env - > gpr_d [ 4 ] ) ;
cpu_stl_le_ data ( env , ea + 52 , env - > gpr_d [ 5 ] ) ;
cpu_stl_le_ data ( env , ea + 56 , env - > gpr_d [ 6 ] ) ;
cpu_stl_le_ data ( env , ea + 60 , env - > gpr_d [ 7 ] ) ;
}
static void restore_context_upper ( CPUTriCoreState * env , uint32_t ea ,
uint32_t * new_PCXI , uint32_t * new_PSW )
{
* new_PCXI = cpu_ldl_data ( env , ea ) ;
* new_PSW = cpu_ldl_data ( env , ea + 4 ) ;
env - > gpr_a [ 10 ] = cpu_ldl_data ( env , ea + 8 ) ;
env - > gpr_a [ 11 ] = cpu_ldl_data ( env , ea + 12 ) ;
env - > gpr_d [ 8 ] = cpu_ldl_data ( env , ea + 16 ) ;
env - > gpr_d [ 9 ] = cpu_ldl_data ( env , ea + 20 ) ;
env - > gpr_d [ 10 ] = cpu_ldl_data ( env , ea + 24 ) ;
env - > gpr_d [ 11 ] = cpu_ldl_data ( env , ea + 28 ) ;
env - > gpr_a [ 12 ] = cpu_ldl_data ( env , ea + 32 ) ;
env - > gpr_a [ 13 ] = cpu_ldl_data ( env , ea + 36 ) ;
env - > gpr_a [ 14 ] = cpu_ldl_data ( env , ea + 40 ) ;
env - > gpr_a [ 15 ] = cpu_ldl_data ( env , ea + 44 ) ;
env - > gpr_d [ 12 ] = cpu_ldl_data ( env , ea + 48 ) ;
env - > gpr_d [ 13 ] = cpu_ldl_data ( env , ea + 52 ) ;
env - > gpr_d [ 14 ] = cpu_ldl_data ( env , ea + 56 ) ;
env - > gpr_d [ 15 ] = cpu_ldl_data ( env , ea + 60 ) ;
* new_PCXI = cpu_ldl_le_ data ( env , ea ) ;
* new_PSW = cpu_ldl_le_ data ( env , ea + 4 ) ;
env - > gpr_a [ 10 ] = cpu_ldl_le_ data ( env , ea + 8 ) ;
env - > gpr_a [ 11 ] = cpu_ldl_le_ data ( env , ea + 12 ) ;
env - > gpr_d [ 8 ] = cpu_ldl_le_ data ( env , ea + 16 ) ;
env - > gpr_d [ 9 ] = cpu_ldl_le_ data ( env , ea + 20 ) ;
env - > gpr_d [ 10 ] = cpu_ldl_le_ data ( env , ea + 24 ) ;
env - > gpr_d [ 11 ] = cpu_ldl_le_ data ( env , ea + 28 ) ;
env - > gpr_a [ 12 ] = cpu_ldl_le_ data ( env , ea + 32 ) ;
env - > gpr_a [ 13 ] = cpu_ldl_le_ data ( env , ea + 36 ) ;
env - > gpr_a [ 14 ] = cpu_ldl_le_ data ( env , ea + 40 ) ;
env - > gpr_a [ 15 ] = cpu_ldl_le_ data ( env , ea + 44 ) ;
env - > gpr_d [ 12 ] = cpu_ldl_le_ data ( env , ea + 48 ) ;
env - > gpr_d [ 13 ] = cpu_ldl_le_ data ( env , ea + 52 ) ;
env - > gpr_d [ 14 ] = cpu_ldl_le_ data ( env , ea + 56 ) ;
env - > gpr_d [ 15 ] = cpu_ldl_le_ data ( env , ea + 60 ) ;
}
static void restore_context_lower ( CPUTriCoreState * env , uint32_t ea ,
uint32_t * ra , uint32_t * pcxi )
{
* pcxi = cpu_ldl_data ( env , ea ) ;
* ra = cpu_ldl_data ( env , ea + 4 ) ;
env - > gpr_a [ 2 ] = cpu_ldl_data ( env , ea + 8 ) ;
env - > gpr_a [ 3 ] = cpu_ldl_data ( env , ea + 12 ) ;
env - > gpr_d [ 0 ] = cpu_ldl_data ( env , ea + 16 ) ;
env - > gpr_d [ 1 ] = cpu_ldl_data ( env , ea + 20 ) ;
env - > gpr_d [ 2 ] = cpu_ldl_data ( env , ea + 24 ) ;
env - > gpr_d [ 3 ] = cpu_ldl_data ( env , ea + 28 ) ;
env - > gpr_a [ 4 ] = cpu_ldl_data ( env , ea + 32 ) ;
env - > gpr_a [ 5 ] = cpu_ldl_data ( env , ea + 36 ) ;
env - > gpr_a [ 6 ] = cpu_ldl_data ( env , ea + 40 ) ;
env - > gpr_a [ 7 ] = cpu_ldl_data ( env , ea + 44 ) ;
env - > gpr_d [ 4 ] = cpu_ldl_data ( env , ea + 48 ) ;
env - > gpr_d [ 5 ] = cpu_ldl_data ( env , ea + 52 ) ;
env - > gpr_d [ 6 ] = cpu_ldl_data ( env , ea + 56 ) ;
env - > gpr_d [ 7 ] = cpu_ldl_data ( env , ea + 60 ) ;
* pcxi = cpu_ldl_le_ data ( env , ea ) ;
* ra = cpu_ldl_le_ data ( env , ea + 4 ) ;
env - > gpr_a [ 2 ] = cpu_ldl_le_ data ( env , ea + 8 ) ;
env - > gpr_a [ 3 ] = cpu_ldl_le_ data ( env , ea + 12 ) ;
env - > gpr_d [ 0 ] = cpu_ldl_le_ data ( env , ea + 16 ) ;
env - > gpr_d [ 1 ] = cpu_ldl_le_ data ( env , ea + 20 ) ;
env - > gpr_d [ 2 ] = cpu_ldl_le_ data ( env , ea + 24 ) ;
env - > gpr_d [ 3 ] = cpu_ldl_le_ data ( env , ea + 28 ) ;
env - > gpr_a [ 4 ] = cpu_ldl_le_ data ( env , ea + 32 ) ;
env - > gpr_a [ 5 ] = cpu_ldl_le_ data ( env , ea + 36 ) ;
env - > gpr_a [ 6 ] = cpu_ldl_le_ data ( env , ea + 40 ) ;
env - > gpr_a [ 7 ] = cpu_ldl_le_ data ( env , ea + 44 ) ;
env - > gpr_d [ 4 ] = cpu_ldl_le_ data ( env , ea + 48 ) ;
env - > gpr_d [ 5 ] = cpu_ldl_le_ data ( env , ea + 52 ) ;
env - > gpr_d [ 6 ] = cpu_ldl_le_ data ( env , ea + 56 ) ;
env - > gpr_d [ 7 ] = cpu_ldl_le_ data ( env , ea + 60 ) ;
}
void helper_call ( CPUTriCoreState * env , uint32_t next_pc )
@ -2566,7 +2566,7 @@ void helper_call(CPUTriCoreState *env, uint32_t next_pc)
ea = ( ( env - > FCX & MASK_FCX_FCXS ) < < 12 ) +
( ( env - > FCX & MASK_FCX_FCXO ) < < 6 ) ;
/* new_FCX = M(EA, word); */
new_FCX = cpu_ldl_data ( env , ea ) ;
new_FCX = cpu_ldl_le_ data ( env , ea ) ;
/* M(EA, 16 * word) = {PCXI, PSW, A[10], A[11], D[8], D[9], D[10], D[11],
A [ 12 ] , A [ 13 ] , A [ 14 ] , A [ 15 ] , D [ 12 ] , D [ 13 ] , D [ 14 ] ,
D [ 15 ] } ; */
@ -2632,7 +2632,7 @@ void helper_ret(CPUTriCoreState *env)
A [ 13 ] , A [ 14 ] , A [ 15 ] , D [ 12 ] , D [ 13 ] , D [ 14 ] , D [ 15 ] } = M ( EA , 16 * word ) ; */
restore_context_upper ( env , ea , & new_PCXI , & new_PSW ) ;
/* M(EA, word) = FCX; */
cpu_stl_data ( env , ea , env - > FCX ) ;
cpu_stl_le_ data ( env , ea , env - > FCX ) ;
/* FCX[19: 0] = PCXI[19: 0]; */
env - > FCX = ( env - > FCX & 0xfff00000 ) + ( env - > PCXI & 0x000fffff ) ;
/* PCXI = new_PCXI; */
@ -2662,7 +2662,7 @@ void helper_bisr(CPUTriCoreState *env, uint32_t const9)
ea = ( ( env - > FCX & 0xf0000 ) < < 12 ) + ( ( env - > FCX & 0xffff ) < < 6 ) ;
/* new_FCX = M(EA, word); */
new_FCX = cpu_ldl_data ( env , ea ) ;
new_FCX = cpu_ldl_le_ data ( env , ea ) ;
/* M(EA, 16 * word) = {PCXI, A[11], A[2], A[3], D[0], D[1], D[2], D[3], A[4]
, A [ 5 ] , A [ 6 ] , A [ 7 ] , D [ 4 ] , D [ 5 ] , D [ 6 ] , D [ 7 ] } ; */
save_context_lower ( env , ea ) ;
@ -2726,7 +2726,7 @@ void helper_rfe(CPUTriCoreState *env)
A [ 13 ] , A [ 14 ] , A [ 15 ] , D [ 12 ] , D [ 13 ] , D [ 14 ] , D [ 15 ] } = M ( EA , 16 * word ) ; */
restore_context_upper ( env , ea , & new_PCXI , & new_PSW ) ;
/* M(EA, word) = FCX;*/
cpu_stl_data ( env , ea , env - > FCX ) ;
cpu_stl_le_ data ( env , ea , env - > FCX ) ;
/* FCX[19: 0] = PCXI[19: 0]; */
env - > FCX = ( env - > FCX & 0xfff00000 ) + ( env - > PCXI & 0x000fffff ) ;
/* PCXI = new_PCXI; */
@ -2744,10 +2744,10 @@ void helper_rfm(CPUTriCoreState *env)
icr_set_ccpn ( env , pcxi_get_pcpn ( env ) ) ;
/* {PCXI, PSW, A[10], A[11]} = M(DCX, 4 * word); */
env - > PCXI = cpu_ldl_data ( env , env - > DCX ) ;
psw_write ( env , cpu_ldl_data ( env , env - > DCX + 4 ) ) ;
env - > gpr_a [ 10 ] = cpu_ldl_data ( env , env - > DCX + 8 ) ;
env - > gpr_a [ 11 ] = cpu_ldl_data ( env , env - > DCX + 12 ) ;
env - > PCXI = cpu_ldl_le_ data ( env , env - > DCX ) ;
psw_write ( env , cpu_ldl_le_ data ( env , env - > DCX + 4 ) ) ;
env - > gpr_a [ 10 ] = cpu_ldl_le_ data ( env , env - > DCX + 8 ) ;
env - > gpr_a [ 11 ] = cpu_ldl_le_ data ( env , env - > DCX + 12 ) ;
if ( tricore_has_feature ( env , TRICORE_FEATURE_131 ) ) {
env - > DBGTCR = 0 ;
@ -2794,7 +2794,7 @@ void helper_svlcx(CPUTriCoreState *env)
ea = ( ( env - > FCX & MASK_FCX_FCXS ) < < 12 ) +
( ( env - > FCX & MASK_FCX_FCXO ) < < 6 ) ;
/* new_FCX = M(EA, word); */
new_FCX = cpu_ldl_data ( env , ea ) ;
new_FCX = cpu_ldl_le_ data ( env , ea ) ;
/* M(EA, 16 * word) = {PCXI, PSW, A[10], A[11], D[8], D[9], D[10], D[11],
A [ 12 ] , A [ 13 ] , A [ 14 ] , A [ 15 ] , D [ 12 ] , D [ 13 ] , D [ 14 ] ,
D [ 15 ] } ; */
@ -2837,7 +2837,7 @@ void helper_svucx(CPUTriCoreState *env)
ea = ( ( env - > FCX & MASK_FCX_FCXS ) < < 12 ) +
( ( env - > FCX & MASK_FCX_FCXO ) < < 6 ) ;
/* new_FCX = M(EA, word); */
new_FCX = cpu_ldl_data ( env , ea ) ;
new_FCX = cpu_ldl_le_ data ( env , ea ) ;
/* M(EA, 16 * word) = {PCXI, PSW, A[10], A[11], D[8], D[9], D[10], D[11],
A [ 12 ] , A [ 13 ] , A [ 14 ] , A [ 15 ] , D [ 12 ] , D [ 13 ] , D [ 14 ] ,
D [ 15 ] } ; */
@ -2887,9 +2887,9 @@ void helper_rslcx(CPUTriCoreState *env)
A [ 13 ] , A [ 14 ] , A [ 15 ] , D [ 12 ] , D [ 13 ] , D [ 14 ] , D [ 15 ] } = M ( EA , 16 * word ) ; */
restore_context_lower ( env , ea , & env - > gpr_a [ 11 ] , & new_PCXI ) ;
/* M(EA, word) = FCX; */
cpu_stl_data ( env , ea , env - > FCX ) ;
cpu_stl_le_ data ( env , ea , env - > FCX ) ;
/* M(EA, word) = FCX; */
cpu_stl_data ( env , ea , env - > FCX ) ;
cpu_stl_le_ data ( env , ea , env - > FCX ) ;
/* FCX[19: 0] = PCXI[19: 0]; */
env - > FCX = ( env - > FCX & 0xfff00000 ) + ( env - > PCXI & 0x000fffff ) ;
/* PCXI = new_PCXI; */