| 885 | void DADDIU( std::string& output ) { _sap("daddiu\t%s, 0x%04X") disDestSource(DECODE_RT, DECODE_RS), DECODE_IMMED); } |
| 886 | |
| 887 | void disMemAccess( std::string& output, const char* name, int cop = 0) |
| 888 | { |
| 889 | const char* rt; |
| 890 | switch (cop) |
| 891 | { |
| 892 | case 0: |
| 893 | rt = GPR_REG[DECODE_RT]; |
| 894 | break; |
| 895 | case 1: |
| 896 | rt = COP1_REG_FP[DECODE_FT]; |
| 897 | break; |
| 898 | case 2: |
| 899 | rt = COP2_REG_FP[DECODE_FT]; |
| 900 | break; |
| 901 | default: |
| 902 | rt = "???"; |
| 903 | break; |
| 904 | } |
| 905 | |
| 906 | const char* rs = GPR_REG[DECODE_RS]; |
| 907 | s16 imm = DECODE_IMMED; |
| 908 | |
| 909 | if (disSimplify && imm == 0) |
| 910 | ssappendf(output, "%s\t%s,(%s)",name,rt,rs); |
| 911 | else |
| 912 | ssappendf(output, "%s\t%s, %s(%s)",name,rt,signedImmediate(imm,4),rs); |
| 913 | } |
| 914 | |
| 915 | void LDL( std::string& output ) { disMemAccess(output,"ldl"); } |
| 916 | void LDR( std::string& output ) { disMemAccess(output,"ldr"); } |