Merge remote-tracking branch 'origin/James_GT-3075'

This commit is contained in:
Ryan Kurtz 2019-08-14 07:47:02 -04:00
commit 8caa0b0f4c

View file

@ -54,6 +54,12 @@
# 1111 0110 ssss 1ccc # call rs if ccc call rs
# 1111 1nnn nnnn nnnn # call n call n
#
#### user-defined
# 1010 0010 ssss 0000 # user_one rs user_one rs
# 1010 0010 ssss 0000 # user_two rs user_two rs
# 1010 0011 0000 0000 # user_three user_three
# 1010 0100 ssss tttt # user_four rs rt user_four rs rt
#
#### RESERVED
# 1101 1001 xxxx xxxx # RESERVED BANK
# 1101 1010 xxxx xxxx # RESERVED BANK
@ -133,6 +139,10 @@ macro logicflags() {
V = 0;
}
define pcodeop pcodeop_one;
define pcodeop pcodeop_two;
define pcodeop pcodeop_three;
# operations
:imm rd, Imm11 is $(INSTR_PHASE) op1515=0x0 & rd & Imm11 { logicflags(); rd = Imm11; resultflags(rd); }
@ -202,3 +212,8 @@ macro logicflags() {
# 1111 0110 ssss 1ccc # call rs if ccc call rs
:call^COND rs is $(INSTR_PHASE) op1215=0xf & op0811=0x6 & rs & op0303=0x1 & COND { build COND; lr = inst_next; call [rs]; }
:user_one rs is $(INSTR_PHASE) op1215=0xa & op0811=0x01 & rs & op0003=0x0 { pcodeop_one(rs);}
:user_two rs is $(INSTR_PHASE) op1215=0xa & op0811=0x02 & rs & op0003=0x0 { pcodeop_two(rs); pcodeop_three();}
:user_three is $(INSTR_PHASE) op1215=0xa & op0811=0x03 & op0007=0x0 { pcodeop_three();}
:user_four rs rt is $(INSTR_PHASE) op1215=0xa & op0811=0x04 & rs & rt { pcodeop_one(rs); call [rt]; pcodeop_three();}