[SH] Fix mac.w insn simulation for SH2 and above
Oleg Endo <[email protected]> Sun, 02 Aug 2026 22:53:56 +0900
| Newsgroups | gmane.comp.gdb.patches |
|---|---|
| Message-ID | <[email protected]> |
--=-EEyPY0+jXTp9dD56xU7m Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, The simulator currently implements only the SH1 version of the mac.w instruction. On SH1 the MACH:MACL accumulator register is only 42-bit. It was extended to 64-bit on SH2 and every variant that followed after. The issue probably never showed up because GCC hasn't been able to emit the SH integer mac instructions. I ran into this because I was trying to do exactly that and while running some tests on sh-sim. The attached patch uses the bfd_mach field to distinguish between SH1 and not-SH1 in the simulation of the mac.w instruction, in a similar way as it'= s already been done for some SH2A instructions. OK to commit & push? Best regards, Oleg Endo --=-EEyPY0+jXTp9dD56xU7m Content-Disposition: attachment; filename="0001-simsh-fix-macw-insn-for-SH2.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-simsh-fix-macw-insn-for-SH2.patch"; charset="UTF-8" RnJvbSA2YjA3ZTNkYWE3M2FjYWMxZDE4MDBjOTRjZGZhZTBiODM1MDlmMmQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbGVnIEVuZG8gPG9sZWdlbmRvQGdjYy5nbnUub3JnPgpEYXRl OiBTdW4sIDIgQXVnIDIwMjYgMTk6Mzc6MjEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBzaW0vc2g6 IGZpeCBtYWMudyBpbnNuIGZvciBTSDIrCgpPbiBTSDEgdGhlIE1BQ0g6TUFDTCBhY2N1bXVsYXRv ciBpcyBvbmx5IDQyIGJpdHMgd2lkZS4gIE9uIFNIMiBhbmQgYWJvdmUgaXQncyA2NApiaXRzIHdp ZGUuICBFbXVsYXRlIHRoZSBjb3JyZXNwb25kaW5nIGJlaGF2aW9yIGJhc2VkIG9uIHRoZSBiZmRf bWFjaCBmaWVsZC4KLS0tCiBzaW0vc2gvaW50ZXJwLmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc2ltL3No L2ludGVycC5jIGIvc2ltL3NoL2ludGVycC5jCmluZGV4IGM4YzJhNzQuLmNjNGFlMmMgMTAwNjQ0 Ci0tLSBhL3NpbS9zaC9pbnRlcnAuYworKysgYi9zaW0vc2gvaW50ZXJwLmMKQEAgLTExOTcsOCAr MTE5NywxMSBAQCBtYWN3IChpbnQgKnJlZ3MsIHVuc2lnbmVkIGNoYXIgKm1lbW9yeSwgaW50IG4s IGludCBtLCBpbnQgZW5kaWFudykKICAgICAgIGxvbmcgbWFjaDsKICAgICAgIC8qIEFkZCB0byBN QUNIIHRoZSBzaWduIGV4dGVuZGVkIHByb2R1Y3QsIGFuZCBjYXJyeSBmcm9tIGxvdyBzdW0uICAq LwogICAgICAgbWFjaCA9IE1BQ0ggKyAoLShwcm9kIDwgMCkpICsgKCh1bnNpZ25lZCBsb25nKSBz dW0gPCBwcm9kKTsKLSAgICAgIC8qIFNpZ24gZXh0ZW5kIGF0IDEwOnRoIGJpdCBpbiBNQUNILiAg Ki8KLSAgICAgIE1BQ0ggPSAobWFjaCAmIDB4MWZmKSB8IC0obWFjaCAmIDB4MjAwKTsKKyAgICAg IC8qIFNIMTogIE1BQ0g6TUFDTCBpcyA0MiBiaXRzIHdpZGUsIHNpZ24gZXh0ZW5kIGF0IHRoZSAx MDp0aCBiaXQgaW4gTUFDSC4KKyAgICAgICAgIFNIMis6IE1BQ0g6TUFDTCBpcyA2NCBiaXRzIHdp ZGUuICAqLworICAgICAgaWYgKHNhdmVkX3N0YXRlLmFzcmVncy5iZmRfbWFjaCA9PSBiZmRfbWFj aF9zaCkKKwltYWNoID0gKG1hY2ggJiAweDFmZikgfCAtKG1hY2ggJiAweDIwMCk7CisgICAgICBN QUNIID0gbWFjaDsKICAgICB9CiAgIE1BQ0wgPSBzdW07CiB9Ci0tCmxpYmdpdDIgMS45LjAKCg== --=-EEyPY0+jXTp9dD56xU7m--