diff options
Diffstat (limited to 'target-ppc/op_template.h')
-rw-r--r-- | target-ppc/op_template.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/target-ppc/op_template.h b/target-ppc/op_template.h index d45062592a..28dc59c942 100644 --- a/target-ppc/op_template.h +++ b/target-ppc/op_template.h @@ -57,6 +57,7 @@ void OPPROTO glue(op_store_T2_gpr_gpr, REG) (void) } #endif +/* General purpose registers containing vector operands moves */ #if defined(TARGET_PPCEMB) void OPPROTO glue(op_load_gpr64_T0_gpr, REG) (void) { @@ -99,6 +100,45 @@ void OPPROTO glue(op_store_T2_gpr64_gpr, REG) (void) #endif #endif /* defined(TARGET_PPCEMB) */ +/* Altivec registers moves */ +void OPPROTO glue(op_load_avr_A0_avr, REG) (void) +{ + AVR0 = env->avr[REG]; + RETURN(); +} + +void OPPROTO glue(op_load_avr_A1_avr, REG) (void) +{ + AVR1 = env->avr[REG]; + RETURN(); +} + +void OPPROTO glue(op_load_avr_A2_avr, REG) (void) +{ + AVR2 = env->avr[REG]; + RETURN(); +} + +void OPPROTO glue(op_store_A0_avr_avr, REG) (void) +{ + env->avr[REG] = AVR0; + RETURN(); +} + +void OPPROTO glue(op_store_A1_avr_avr, REG) (void) +{ + env->avr[REG] = AVR1; + RETURN(); +} + +#if 0 // unused +void OPPROTO glue(op_store_A2_avr_avr, REG) (void) +{ + env->avr[REG] = AVR2; + RETURN(); +} +#endif + #if REG <= 7 /* Condition register moves */ void OPPROTO glue(op_load_crf_T0_crf, REG) (void) |