|
|
@ -312,7 +312,7 @@ impl OpTrait for ArithOp { |
|
|
|
let res = if 0 != (val & 0x8000_0000) { |
|
|
|
let res = if 0 != (val & 0x8000_0000) { |
|
|
|
0xFFFF_FFFF_0000_0000 | val |
|
|
|
0xFFFF_FFFF_0000_0000 | val |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
val |
|
|
|
val & 0xFFFF_FFFF |
|
|
|
}; |
|
|
|
}; |
|
|
|
state.update_status(res); |
|
|
|
state.update_status(res); |
|
|
|
state.write(dst, res)?; |
|
|
|
state.write(dst, res)?; |
|
|
@ -323,7 +323,7 @@ impl OpTrait for ArithOp { |
|
|
|
let res = if 0 != (val & 0x8000) { |
|
|
|
let res = if 0 != (val & 0x8000) { |
|
|
|
0xFFFF_FFFF_FFFF_0000 | val |
|
|
|
0xFFFF_FFFF_FFFF_0000 | val |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
val |
|
|
|
val & 0xFFFF |
|
|
|
}; |
|
|
|
}; |
|
|
|
state.update_status(res); |
|
|
|
state.update_status(res); |
|
|
|
state.write(dst, res)?; |
|
|
|
state.write(dst, res)?; |
|
|
@ -334,7 +334,7 @@ impl OpTrait for ArithOp { |
|
|
|
let res = if 0 != (val & 0x80) { |
|
|
|
let res = if 0 != (val & 0x80) { |
|
|
|
0xFFFF_FFFF_FFFF_FF00 | val |
|
|
|
0xFFFF_FFFF_FFFF_FF00 | val |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
val |
|
|
|
val & 0xFF |
|
|
|
}; |
|
|
|
}; |
|
|
|
state.update_status(res); |
|
|
|
state.update_status(res); |
|
|
|
state.write(dst, res)?; |
|
|
|
state.write(dst, res)?; |
|
|
|