Merge remote-tracking branch

'origin/GP-841_ghidorahrex_pic16_missing_instructions' (Closes #1362)
This commit is contained in:
ghidra1 2021-04-21 19:10:25 -04:00
commit a372f17736

View file

@ -287,7 +287,7 @@ trisREG: "7" is l5=7 { local trl:2 = 0x10E; export *[DATA]:1 trl; } #
@if PROCESSOR == "PIC_16F"
:ADD^fsrk sk6 is op7=0x62 & fsrk & sk6 {
:ADDFSR fsrk, sk6 is op7=0x62 & fsrk & sk6 {
fsrk = fsrk + sk6;
}
@endif
@ -384,6 +384,12 @@ trisREG: "7" is l5=7 { local trl:2 = 0x10E; export *[DATA]:1 trl; } #
destREG = val;
}
:ASRF srcREG, D is op6=0x37 & srcREG & D & destREG {
# --11 0111 dfff ffff
$(C) = srcREG & 0x1;
destREG = srcREG s>> 1;
}
:BCF srcREG, bit is op4=0x4 & srcREG & bit {
# --01 00bb bfff ffff
# 0001 0010 0000 0000 -> BCF INDF, #0x4
@ -612,6 +618,12 @@ trisREG: "7" is l5=7 { local trl:2 = 0x10E; export *[DATA]:1 trl; } #
call [absAddr11];
}
:CALLW is op14=0x000a {
# --00 0000 0000 1010
push(&:2 inst_next);
call [W];
}
:CLRF srcREG is op6=0x01 & d=1 & srcREG {
# --00 0001 1fff ffff
# 0000 0001 1000 0000 -> CLRF INDF
@ -735,6 +747,18 @@ srcFSRk: sk6"["fsrk"]" is fsrk & sk6 {
addr:2 = fsrk + sk6; export *[DATA]:1 addr;
}
:LSLF srcREG, D is op6=0x35 & srcREG & D & destREG {
# --11 0101 dfff ffff
$(C) = (srcREG & 80) != 0;
destREG = srcREG << 1;
}
:LSRF srcREG, D is op6=0x36 & srcREG & D & destREG {
# --11 0110 dfff ffff
$(C) = srcREG & 0x1;
destREG = srcREG >> 1;
}
:MOVIW srcFSR is op11=2 & srcFSR {
W = srcFSR;
setResultFlags(W);