m68k: fixed PC increment location on TRAPcc instructions (#9461)
This commit is contained in:
parent
bfd1119643
commit
ea2ca07e94
@ -7821,10 +7821,12 @@ e5c0 ffc0 roxl w A+-DXWL 01:8 7:14 234fc:5
|
||||
|
||||
|
||||
50fa ffff trapt w . 234fc:6
|
||||
m_pc += 2; // increase before else stackframe & return addresses are incorrect
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
|
||||
|
||||
50fb ffff trapt l . 234fc:8
|
||||
m_pc += 4; // increase before else stackframe & return addresses are incorrect
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
|
||||
|
||||
@ -7845,18 +7847,16 @@ e5c0 ffc0 roxl w A+-DXWL 01:8 7:14 234fc:5
|
||||
|
||||
|
||||
50fa f0ff trapcc w . 234fc:6
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(M68KMAKE_CC) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
50fb f0ff trapcc l . 234fc:8
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(M68KMAKE_CC) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
|
@ -30365,12 +30365,14 @@ void m68000_base_device::x50fc_trapt_234fc()
|
||||
}
|
||||
void m68000_base_device::x50fa_trapt_w_234fc()
|
||||
{
|
||||
m_pc += 2; // increase before else stackframe & return addresses are incorrect
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x50fb_trapt_l_234fc()
|
||||
{
|
||||
m_pc += 4; // increase before else stackframe & return addresses are incorrect
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
|
||||
|
||||
@ -30492,280 +30494,252 @@ void m68000_base_device::x5ffc_traple_234fc()
|
||||
}
|
||||
void m68000_base_device::x52fa_traphi_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_HI()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x53fa_trapls_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_LS()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x54fa_trapcc_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_CC()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x55fa_trapcs_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_CS()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x56fa_trapne_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_NE()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x57fa_trapeq_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_EQ()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x58fa_trapvc_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_VC()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x59fa_trapvs_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_VS()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5afa_trappl_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_PL()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5bfa_trapmi_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_MI()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5cfa_trapge_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_GE()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5dfa_traplt_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_LT()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5efa_trapgt_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_GT()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5ffa_traple_w_234fc()
|
||||
{
|
||||
m_pc += 2; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_LE()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x52fb_traphi_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_HI()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x53fb_trapls_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_LS()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x54fb_trapcc_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_CC()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x55fb_trapcs_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_CS()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x56fb_trapne_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_NE()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x57fb_trapeq_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_EQ()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x58fb_trapvc_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_VC()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x59fb_trapvs_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_VS()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5afb_trappl_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_PL()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5bfb_trapmi_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_MI()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5cfb_trapge_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_GE()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5dfb_traplt_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_LT()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5efb_trapgt_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_GT()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
void m68000_base_device::x5ffb_traple_l_234fc()
|
||||
{
|
||||
m_pc += 4; /* increase _before_ calling handler or 1) stackframe is incorrect 2) RTE address is wrong if trap is taken */
|
||||
if(COND_LE()) {
|
||||
m68ki_exception_trap(EXCEPTION_TRAPV); /* HJB 990403 */
|
||||
} else {
|
||||
m_pc += 4;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user