0002-cas.diff 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --- binutils-2.25.1.orig/gas/config/tc-sh.c
  2. +++ binutils-2.25.1/gas/config/tc-sh.c
  3. @@ -1730,6 +1730,11 @@
  4. goto fail;
  5. break;
  6. + case A_IND_0:
  7. + if (user->type != A_IND_N || user->reg != 0)
  8. + goto fail;
  9. + break;
  10. +
  11. case A_REG_N:
  12. case A_INC_N:
  13. case A_DEC_N:
  14. --- binutils-2.25.1.orig/opcodes/sh-dis.c
  15. +++ binutils-2.25.1/opcodes/sh-dis.c
  16. @@ -703,6 +703,9 @@
  17. case AS_DEC_N:
  18. fprintf_fn (stream, "@-r%d", rn);
  19. break;
  20. + case A_IND_0:
  21. + fprintf_fn (stream, "@r0");
  22. + break;
  23. case A_IND_N:
  24. case AS_IND_N:
  25. fprintf_fn (stream, "@r%d", rn);
  26. --- binutils-2.25.1.orig/opcodes/sh-opc.h
  27. +++ binutils-2.25.1/opcodes/sh-opc.h
  28. @@ -112,6 +112,7 @@
  29. A_IMM,
  30. A_INC_M,
  31. A_INC_N,
  32. + A_IND_0,
  33. A_IND_M,
  34. A_IND_N,
  35. A_IND_R0_REG_M,
  36. @@ -410,6 +411,8 @@
  37. /* 10001111i8p1.... bf.s <bdisp8> */{"bf.s",{A_BDISP8},{HEX_8,HEX_F,BRANCH_8}, arch_sh2_up},
  38. /* 10001111i8p1.... bf/s <bdisp8> */{"bf/s",{A_BDISP8},{HEX_8,HEX_F,BRANCH_8}, arch_sh2_up},
  39. +
  40. +/* 0011nnnnmmmm0001 cas.l <REG_M>,<REG_N>,@R0*/{"cas.l",{A_REG_M,A_REG_N,A_IND_0},{HEX_3,REG_N,REG_M,HEX_1}, arch_sh2_up},
  41. /* 0000000010001000 clrdmxy */{"clrdmxy",{0},{HEX_0,HEX_0,HEX_8,HEX_8}, arch_sh4al_dsp_up},