1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-04 18:29:40 +00:00

Eliminate dead detour.

This commit is contained in:
Thomas Harte 2023-10-25 22:27:44 -04:00
parent 6ac66dad0c
commit dafb134cdc
2 changed files with 6 additions and 21 deletions

View File

@ -1014,24 +1014,12 @@ std::pair<int, typename Decoder<model>::InstructionT> Decoder<model>::decode(con
if(bytes_to_consume == outstanding_bytes) {
phase_ = Phase::ReadyToPost;
// TODO: whether the displacement is signed appears to depend on the opcode.
// Find an appropriate table.
// if(!sign_extend_displacement_) {
// switch(displacement_size_) {
// case DataSize::None: displacement_ = 0; break;
// case DataSize::Byte: displacement_ = decltype(displacement_)(uint8_t(inward_data_)); break;
// case DataSize::Word: displacement_ = decltype(displacement_)(uint16_t(inward_data_)); break;
// case DataSize::DWord: displacement_ = decltype(displacement_)(uint32_t(inward_data_)); break;
// }
// } else {
switch(displacement_size_) {
case DataSize::None: displacement_ = 0; break;
case DataSize::Byte: displacement_ = int8_t(inward_data_); break;
case DataSize::Word: displacement_ = int16_t(inward_data_); break;
case DataSize::DWord: displacement_ = int32_t(inward_data_); break;
}
// }
switch(displacement_size_) {
case DataSize::None: displacement_ = 0; break;
case DataSize::Byte: displacement_ = int8_t(inward_data_); break;
case DataSize::Word: displacement_ = int16_t(inward_data_); break;
case DataSize::DWord: displacement_ = int32_t(inward_data_); break;
}
inward_data_ >>= bit_size(displacement_size_);
// Use inequality of sizes as a test for necessary sign extension.

View File

@ -195,8 +195,6 @@ template <Model model> class Decoder {
bool sign_extend_operand_ = false; // If set then sign extend the operand up to the operation size;
// otherwise it'll be zero-padded.
bool sign_extend_displacement_ = false; // Much as above; 'displacement' is used internally for both
// displacements and offsets, so signage will vary.
// Prefix capture fields.
Repetition repetition_ = Repetition::None;
@ -225,7 +223,6 @@ template <Model model> class Decoder {
next_inward_data_shift_ = 0;
inward_data_ = 0;
sign_extend_operand_ = false;
sign_extend_displacement_ = false;
}
};