Revision e2ea21b3 target-sparc/translate.c

b/target-sparc/translate.c
3886 3886
                    break;
3887 3887
                case 0x062: /* VIS I fnor */
3888 3888
                    CHECK_FPU_FEATURE(dc, VIS1);
3889
                    gen_op_load_fpr_DT0(DFPREG(rs1));
3890
                    gen_op_load_fpr_DT1(DFPREG(rs2));
3891
                    tcg_gen_helper_0_0(helper_fnor);
3892
                    gen_op_store_DT0_fpr(DFPREG(rd));
3889
                    tcg_gen_or_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1)],
3890
                                   cpu_fpr[DFPREG(rs2)]);
3891
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd)], cpu_tmp32, -1);
3892
                    tcg_gen_or_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1) + 1],
3893
                                   cpu_fpr[DFPREG(rs2) + 1]);
3894
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd) + 1], cpu_tmp32, -1);
3893 3895
                    break;
3894 3896
                case 0x063: /* VIS I fnors */
3895 3897
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3898 3900
                    break;
3899 3901
                case 0x064: /* VIS I fandnot2 */
3900 3902
                    CHECK_FPU_FEATURE(dc, VIS1);
3901
                    gen_op_load_fpr_DT1(DFPREG(rs1));
3902
                    gen_op_load_fpr_DT0(DFPREG(rs2));
3903
                    tcg_gen_helper_0_0(helper_fandnot);
3904
                    gen_op_store_DT0_fpr(DFPREG(rd));
3903
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1)], -1);
3904
                    tcg_gen_and_i32(cpu_fpr[DFPREG(rd)], cpu_tmp32,
3905
                                    cpu_fpr[DFPREG(rs2)]);
3906
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1) + 1], -1);
3907
                    tcg_gen_and_i32(cpu_fpr[DFPREG(rd) + 1], cpu_tmp32,
3908
                                    cpu_fpr[DFPREG(rs2) + 1]);
3905 3909
                    break;
3906 3910
                case 0x065: /* VIS I fandnot2s */
3907 3911
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3910 3914
                    break;
3911 3915
                case 0x066: /* VIS I fnot2 */
3912 3916
                    CHECK_FPU_FEATURE(dc, VIS1);
3913
                    gen_op_load_fpr_DT1(DFPREG(rs2));
3914
                    tcg_gen_helper_0_0(helper_fnot);
3915
                    gen_op_store_DT0_fpr(DFPREG(rd));
3917
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd)], cpu_fpr[DFPREG(rs2)],
3918
                                     -1);
3919
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd) + 1],
3920
                                     cpu_fpr[DFPREG(rs2) + 1], -1);
3916 3921
                    break;
3917 3922
                case 0x067: /* VIS I fnot2s */
3918 3923
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3920 3925
                    break;
3921 3926
                case 0x068: /* VIS I fandnot1 */
3922 3927
                    CHECK_FPU_FEATURE(dc, VIS1);
3923
                    gen_op_load_fpr_DT0(DFPREG(rs1));
3924
                    gen_op_load_fpr_DT1(DFPREG(rs2));
3925
                    tcg_gen_helper_0_0(helper_fandnot);
3926
                    gen_op_store_DT0_fpr(DFPREG(rd));
3928
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs2)], -1);
3929
                    tcg_gen_and_i32(cpu_fpr[DFPREG(rd)], cpu_tmp32,
3930
                                    cpu_fpr[DFPREG(rs1)]);
3931
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs2)], -1);
3932
                    tcg_gen_and_i32(cpu_fpr[DFPREG(rd) + 1], cpu_tmp32,
3933
                                    cpu_fpr[DFPREG(rs1) + 1]);
3927 3934
                    break;
3928 3935
                case 0x069: /* VIS I fandnot1s */
3929 3936
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3932 3939
                    break;
3933 3940
                case 0x06a: /* VIS I fnot1 */
3934 3941
                    CHECK_FPU_FEATURE(dc, VIS1);
3935
                    gen_op_load_fpr_DT1(DFPREG(rs1));
3936
                    tcg_gen_helper_0_0(helper_fnot);
3937
                    gen_op_store_DT0_fpr(DFPREG(rd));
3942
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd)], cpu_fpr[DFPREG(rs1)],
3943
                                     -1);
3944
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd) + 1],
3945
                                     cpu_fpr[DFPREG(rs1) + 1], -1);
3938 3946
                    break;
3939 3947
                case 0x06b: /* VIS I fnot1s */
3940 3948
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3942 3950
                    break;
3943 3951
                case 0x06c: /* VIS I fxor */
3944 3952
                    CHECK_FPU_FEATURE(dc, VIS1);
3945
                    gen_op_load_fpr_DT0(DFPREG(rs1));
3946
                    gen_op_load_fpr_DT1(DFPREG(rs2));
3947
                    tcg_gen_helper_0_0(helper_fxor);
3948
                    gen_op_store_DT0_fpr(DFPREG(rd));
3953
                    tcg_gen_xor_i32(cpu_fpr[DFPREG(rd)], cpu_fpr[DFPREG(rs1)],
3954
                                    cpu_fpr[DFPREG(rs2)]);
3955
                    tcg_gen_xor_i32(cpu_fpr[DFPREG(rd) + 1],
3956
                                    cpu_fpr[DFPREG(rs1) + 1],
3957
                                    cpu_fpr[DFPREG(rs2) + 1]);
3949 3958
                    break;
3950 3959
                case 0x06d: /* VIS I fxors */
3951 3960
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3953 3962
                    break;
3954 3963
                case 0x06e: /* VIS I fnand */
3955 3964
                    CHECK_FPU_FEATURE(dc, VIS1);
3956
                    gen_op_load_fpr_DT0(DFPREG(rs1));
3957
                    gen_op_load_fpr_DT1(DFPREG(rs2));
3958
                    tcg_gen_helper_0_0(helper_fnand);
3959
                    gen_op_store_DT0_fpr(DFPREG(rd));
3965
                    tcg_gen_and_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1)],
3966
                                    cpu_fpr[DFPREG(rs2)]);
3967
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd)], cpu_tmp32, -1);
3968
                    tcg_gen_and_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1) + 1],
3969
                                    cpu_fpr[DFPREG(rs2) + 1]);
3970
                    tcg_gen_xori_i32(cpu_fpr[DFPREG(rd) + 1], cpu_tmp32, -1);
3960 3971
                    break;
3961 3972
                case 0x06f: /* VIS I fnands */
3962 3973
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3965 3976
                    break;
3966 3977
                case 0x070: /* VIS I fand */
3967 3978
                    CHECK_FPU_FEATURE(dc, VIS1);
3968
                    gen_op_load_fpr_DT0(DFPREG(rs1));
3969
                    gen_op_load_fpr_DT1(DFPREG(rs2));
3970
                    tcg_gen_helper_0_0(helper_fand);
3971
                    gen_op_store_DT0_fpr(DFPREG(rd));
3979
                    tcg_gen_and_i32(cpu_fpr[DFPREG(rd)], cpu_fpr[DFPREG(rs1)],
3980
                                    cpu_fpr[DFPREG(rs2)]);
3981
                    tcg_gen_and_i32(cpu_fpr[DFPREG(rd) + 1],
3982
                                    cpu_fpr[DFPREG(rs1) + 1],
3983
                                    cpu_fpr[DFPREG(rs2) + 1]);
3972 3984
                    break;
3973 3985
                case 0x071: /* VIS I fands */
3974 3986
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3976 3988
                    break;
3977 3989
                case 0x072: /* VIS I fxnor */
3978 3990
                    CHECK_FPU_FEATURE(dc, VIS1);
3979
                    gen_op_load_fpr_DT0(DFPREG(rs1));
3980
                    gen_op_load_fpr_DT1(DFPREG(rs2));
3981
                    tcg_gen_helper_0_0(helper_fxnor);
3982
                    gen_op_store_DT0_fpr(DFPREG(rd));
3991
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs2)], -1);
3992
                    tcg_gen_xor_i32(cpu_fpr[DFPREG(rd)], cpu_tmp32,
3993
                                    cpu_fpr[DFPREG(rs1)]);
3994
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs2) + 1], -1);
3995
                    tcg_gen_xor_i32(cpu_fpr[DFPREG(rd) + 1], cpu_tmp32,
3996
                                    cpu_fpr[DFPREG(rs1) + 1]);
3983 3997
                    break;
3984 3998
                case 0x073: /* VIS I fxnors */
3985 3999
                    CHECK_FPU_FEATURE(dc, VIS1);
......
3998 4012
                    break;
3999 4013
                case 0x076: /* VIS I fornot2 */
4000 4014
                    CHECK_FPU_FEATURE(dc, VIS1);
4001
                    gen_op_load_fpr_DT1(DFPREG(rs1));
4002
                    gen_op_load_fpr_DT0(DFPREG(rs2));
4003
                    tcg_gen_helper_0_0(helper_fornot);
4004
                    gen_op_store_DT0_fpr(DFPREG(rd));
4015
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1)], -1);
4016
                    tcg_gen_or_i32(cpu_fpr[DFPREG(rd)], cpu_tmp32,
4017
                                   cpu_fpr[DFPREG(rs2)]);
4018
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs1) + 1], -1);
4019
                    tcg_gen_or_i32(cpu_fpr[DFPREG(rd) + 1], cpu_tmp32,
4020
                                   cpu_fpr[DFPREG(rs2) + 1]);
4005 4021
                    break;
4006 4022
                case 0x077: /* VIS I fornot2s */
4007 4023
                    CHECK_FPU_FEATURE(dc, VIS1);
......
4019 4035
                    break;
4020 4036
                case 0x07a: /* VIS I fornot1 */
4021 4037
                    CHECK_FPU_FEATURE(dc, VIS1);
4022
                    gen_op_load_fpr_DT0(DFPREG(rs1));
4023
                    gen_op_load_fpr_DT1(DFPREG(rs2));
4024
                    tcg_gen_helper_0_0(helper_fornot);
4025
                    gen_op_store_DT0_fpr(DFPREG(rd));
4038
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs2)], -1);
4039
                    tcg_gen_or_i32(cpu_fpr[DFPREG(rd)], cpu_tmp32,
4040
                                   cpu_fpr[DFPREG(rs1)]);
4041
                    tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[DFPREG(rs2) + 1], -1);
4042
                    tcg_gen_or_i32(cpu_fpr[DFPREG(rd) + 1], cpu_tmp32,
4043
                                   cpu_fpr[DFPREG(rs1) + 1]);
4026 4044
                    break;
4027 4045
                case 0x07b: /* VIS I fornot1s */
4028 4046
                    CHECK_FPU_FEATURE(dc, VIS1);
......
4031 4049
                    break;
4032 4050
                case 0x07c: /* VIS I for */
4033 4051
                    CHECK_FPU_FEATURE(dc, VIS1);
4034
                    gen_op_load_fpr_DT0(DFPREG(rs1));
4035
                    gen_op_load_fpr_DT1(DFPREG(rs2));
4036
                    tcg_gen_helper_0_0(helper_for);
4037
                    gen_op_store_DT0_fpr(DFPREG(rd));
4052
                    tcg_gen_or_i32(cpu_fpr[DFPREG(rd)], cpu_fpr[DFPREG(rs1)],
4053
                                   cpu_fpr[DFPREG(rs2)]);
4054
                    tcg_gen_or_i32(cpu_fpr[DFPREG(rd) + 1],
4055
                                   cpu_fpr[DFPREG(rs1) + 1],
4056
                                   cpu_fpr[DFPREG(rs2) + 1]);
4038 4057
                    break;
4039 4058
                case 0x07d: /* VIS I fors */
4040 4059
                    CHECK_FPU_FEATURE(dc, VIS1);

Also available in: Unified diff