Revision c3e10c7b target-ppc/translate.c
b/target-ppc/translate.c | ||
---|---|---|
888 | 888 |
/* subf subf. subfo subfo. */ |
889 | 889 |
static always_inline void gen_op_subfo (void) |
890 | 890 |
{ |
891 |
gen_op_move_T2_T0(); |
|
891 |
gen_op_moven_T2_T0();
|
|
892 | 892 |
gen_op_subf(); |
893 |
gen_op_check_subfo();
|
|
893 |
gen_op_check_addo();
|
|
894 | 894 |
} |
895 | 895 |
#if defined(TARGET_PPC64) |
896 | 896 |
#define gen_op_subf_64 gen_op_subf |
897 | 897 |
static always_inline void gen_op_subfo_64 (void) |
898 | 898 |
{ |
899 |
gen_op_move_T2_T0(); |
|
899 |
gen_op_moven_T2_T0();
|
|
900 | 900 |
gen_op_subf(); |
901 |
gen_op_check_subfo_64();
|
|
901 |
gen_op_check_addo_64();
|
|
902 | 902 |
} |
903 | 903 |
#endif |
904 | 904 |
GEN_INT_ARITH2_64 (subf, 0x1F, 0x08, 0x01, PPC_INTEGER); |
... | ... | |
910 | 910 |
} |
911 | 911 |
static always_inline void gen_op_subfco (void) |
912 | 912 |
{ |
913 |
gen_op_move_T2_T0(); |
|
913 |
gen_op_moven_T2_T0();
|
|
914 | 914 |
gen_op_subf(); |
915 | 915 |
gen_op_check_subfc(); |
916 |
gen_op_check_subfo();
|
|
916 |
gen_op_check_addo();
|
|
917 | 917 |
} |
918 | 918 |
#if defined(TARGET_PPC64) |
919 | 919 |
static always_inline void gen_op_subfc_64 (void) |
... | ... | |
923 | 923 |
} |
924 | 924 |
static always_inline void gen_op_subfco_64 (void) |
925 | 925 |
{ |
926 |
gen_op_move_T2_T0(); |
|
926 |
gen_op_moven_T2_T0();
|
|
927 | 927 |
gen_op_subf(); |
928 | 928 |
gen_op_check_subfc_64(); |
929 |
gen_op_check_subfo_64();
|
|
929 |
gen_op_check_addo_64();
|
|
930 | 930 |
} |
931 | 931 |
#endif |
932 | 932 |
GEN_INT_ARITH2_64 (subfc, 0x1F, 0x08, 0x00, PPC_INTEGER); |
933 | 933 |
/* subfe subfe. subfeo subfeo. */ |
934 | 934 |
static always_inline void gen_op_subfeo (void) |
935 | 935 |
{ |
936 |
gen_op_move_T2_T0(); |
|
936 |
gen_op_moven_T2_T0();
|
|
937 | 937 |
gen_op_subfe(); |
938 |
gen_op_check_subfo();
|
|
938 |
gen_op_check_addo();
|
|
939 | 939 |
} |
940 | 940 |
#if defined(TARGET_PPC64) |
941 | 941 |
#define gen_op_subfe_64 gen_op_subfe |
942 | 942 |
static always_inline void gen_op_subfeo_64 (void) |
943 | 943 |
{ |
944 |
gen_op_move_T2_T0(); |
|
944 |
gen_op_moven_T2_T0();
|
|
945 | 945 |
gen_op_subfe_64(); |
946 |
gen_op_check_subfo_64();
|
|
946 |
gen_op_check_addo_64();
|
|
947 | 947 |
} |
948 | 948 |
#endif |
949 | 949 |
GEN_INT_ARITH2_64 (subfe, 0x1F, 0x08, 0x04, PPC_INTEGER); |
... | ... | |
5116 | 5116 |
if (opc3 & 0x10) { |
5117 | 5117 |
/* Check overflow */ |
5118 | 5118 |
if (opc3 & 0x01) |
5119 |
gen_op_405_check_ov();
|
|
5119 |
gen_op_check_addo();
|
|
5120 | 5120 |
else |
5121 | 5121 |
gen_op_405_check_ovu(); |
5122 | 5122 |
} |
Also available in: Unified diff