mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 23:52:26 +00:00
There's no TODO here; overflow is always 0 for a 16x16 multiply.
... and the original 68000 doesn't support 32x32 multiplies.
This commit is contained in:
parent
ca12ba297b
commit
c7a5b054db
@ -940,7 +940,7 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
|
|||||||
|
|
||||||
case Operation::MULU: {
|
case Operation::MULU: {
|
||||||
destination()->full = destination()->halves.low.full * source()->halves.low.full;
|
destination()->full = destination()->halves.low.full * source()->halves.low.full;
|
||||||
carry_flag_ = overflow_flag_ = 0; // TODO: "set if overflow".
|
carry_flag_ = overflow_flag_ = 0;
|
||||||
zero_result_ = destination()->full;
|
zero_result_ = destination()->full;
|
||||||
negative_flag_ = zero_result_ & 0x80000000;
|
negative_flag_ = zero_result_ & 0x80000000;
|
||||||
|
|
||||||
@ -954,7 +954,7 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
|
|||||||
case Operation::MULS: {
|
case Operation::MULS: {
|
||||||
destination()->full =
|
destination()->full =
|
||||||
u_extend16(destination()->halves.low.full) * u_extend16(source()->halves.low.full);
|
u_extend16(destination()->halves.low.full) * u_extend16(source()->halves.low.full);
|
||||||
carry_flag_ = overflow_flag_ = 0; // TODO: "set if overflow".
|
carry_flag_ = overflow_flag_ = 0;
|
||||||
zero_result_ = destination()->full;
|
zero_result_ = destination()->full;
|
||||||
negative_flag_ = zero_result_ & 0x80000000;
|
negative_flag_ = zero_result_ & 0x80000000;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user