ghidra/Ghidra/Processors/6805/data/languages/6x09_pull.sinc

49 lines
2.3 KiB
Plaintext

# sleigh specification file for Motorola 6809/Hitachi 6309
#################################################################
# PULS helper
################################################################
puls0: CC is CC & imm80=1 { Pull1(S, CC); }
puls0: is imm80=0 { }
puls1: puls0" "A is A & imm81=1 & puls0 { Pull1(S, A); }
puls1: puls0 is imm81=0 & puls0 { }
puls2: puls1" "B is B & imm82=1 & puls1 { Pull1(S, B); }
puls2: puls1 is imm82=0 & puls1 { }
puls3: puls2" "DP is DP & imm83=1 & puls2 { Pull1(S, DP); }
puls3: puls2 is imm83=0 & puls2 { }
puls4: puls3" "X is X & imm84=1 & puls3 { Pull2(S, X); }
puls4: puls3 is imm84=0 & puls3 { }
puls5: puls4" "Y is Y & imm85=1 & puls4 { Pull2(S, Y); }
puls5: puls4 is imm85=0 & puls4 { }
puls6: puls5" "U is U & imm86=1 & puls5 { Pull2(S, U); }
puls6: puls5 is imm86=0 & puls5 { }
puls7: puls6" "PC is PC & imm87=1 & puls6 { local t:2 = 0; Pull2(S, t); goto [t]; }
puls7: puls6 is imm87=0 & puls6 { }
:PULS puls7 is op=0x35; puls7 { }
################################################################
# PULU helper
################################################################
pulu0: CC is CC & imm80=1 { Pull1(U, CC); }
pulu0: is imm80=0 { }
pulu1: pulu0" "A is A & imm81=1 & pulu0 { Pull1(U, A); }
pulu1: pulu0 is imm81=0 & pulu0 { }
pulu2: pulu1" "B is B & imm82=1 & pulu1 { Pull1(U, B); }
pulu2: pulu1 is imm82=0 & pulu1 { }
pulu3: pulu2" "DP is DP & imm83=1 & pulu2 { Pull1(U, DP); }
pulu3: pulu2 is imm83=0 & pulu2 { }
pulu4: pulu3" "X is X & imm84=1 & pulu3 { Pull2(U, X); }
pulu4: pulu3 is imm84=0 & pulu3 { }
pulu5: pulu4" "Y is Y & imm85=1 & pulu4 { Pull2(U, Y); }
pulu5: pulu4 is imm85=0 & pulu4 { }
pulu6: pulu5" "S is S & imm86=1 & pulu5 { Pull2(U, S); }
pulu6: pulu5 is imm86=0 & pulu5 { }
pulu7: pulu6" "PC is PC & imm87=1 & pulu6 { local t:2 = 0; Pull2(U, t); goto [t]; }
pulu7: pulu6 is imm87=0 & pulu6 { }
:PULU pulu7 is op=0x37; pulu7 { }