Changes since v1: * No attempt to pack pos+len into one operand. Updated backends to match this change.
* Example in the README is a bit more complex. * Define an official tcg_scratch_alloc routine, used by the i386 target for the case in which we need a scratch register. I had said that triggering this wasn't possible with mainline, but I was wrong. The rlwimi example I posted in the other thread hits this case. Aurelien suggested using a shorter name like "dep", but I think that would be more confusing than not. This opcode is not really used enough to warrent cropping 4 characters, in my opinion. r~ Richard Henderson (7): tcg: Define "deposit" as an optional operation. tcg-ppc: Implement deposit operation. tcg-hppa: Implement deposit operation. tcg-ia64: Implement deposit operation. tcg-i386: Implement deposit operation. target-i386: Use deposit operation. target-ppc: Use deposit operation. target-i386/translate.c | 34 +++----------- target-ppc/translate.c | 10 ++++ tcg/README | 14 ++++++ tcg/hppa/tcg-target.c | 58 +++++++++++++++++++++--- tcg/hppa/tcg-target.h | 1 + tcg/i386/tcg-target.c | 67 ++++++++++++++++++++++++++- tcg/i386/tcg-target.h | 2 + tcg/ia64/tcg-target.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++ tcg/ia64/tcg-target.h | 2 + tcg/ppc/tcg-target.c | 17 +++++++- tcg/ppc/tcg-target.h | 1 + tcg/tcg-op.h | 64 ++++++++++++++++++++++++++ tcg/tcg-opc.h | 6 +++ tcg/tcg.c | 11 +++++ 14 files changed, 364 insertions(+), 38 deletions(-) -- 1.7.2.3