Revision 1d01299d target-sparc/translate.c
b/target-sparc/translate.c | ||
---|---|---|
3836 | 3836 |
break; |
3837 | 3837 |
case 0x051: /* VIS I fpadd16s */ |
3838 | 3838 |
CHECK_FPU_FEATURE(dc, VIS1); |
3839 |
gen_op_load_fpr_FT0(rs1); |
|
3840 |
gen_op_load_fpr_FT1(rs2); |
|
3841 |
tcg_gen_helper_0_0(helper_fpadd16s); |
|
3842 |
gen_op_store_FT0_fpr(rd); |
|
3839 |
tcg_gen_helper_1_2(helper_fpadd16s, cpu_fpr[rd], |
|
3840 |
cpu_fpr[rs1], cpu_fpr[rs2]); |
|
3843 | 3841 |
break; |
3844 | 3842 |
case 0x052: /* VIS I fpadd32 */ |
3845 | 3843 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3850 | 3848 |
break; |
3851 | 3849 |
case 0x053: /* VIS I fpadd32s */ |
3852 | 3850 |
CHECK_FPU_FEATURE(dc, VIS1); |
3853 |
gen_op_load_fpr_FT0(rs1); |
|
3854 |
gen_op_load_fpr_FT1(rs2); |
|
3855 |
tcg_gen_helper_0_0(helper_fpadd32s); |
|
3856 |
gen_op_store_FT0_fpr(rd); |
|
3851 |
tcg_gen_helper_1_2(helper_fpadd32s, cpu_fpr[rd], |
|
3852 |
cpu_fpr[rs1], cpu_fpr[rs2]); |
|
3857 | 3853 |
break; |
3858 | 3854 |
case 0x054: /* VIS I fpsub16 */ |
3859 | 3855 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3864 | 3860 |
break; |
3865 | 3861 |
case 0x055: /* VIS I fpsub16s */ |
3866 | 3862 |
CHECK_FPU_FEATURE(dc, VIS1); |
3867 |
gen_op_load_fpr_FT0(rs1); |
|
3868 |
gen_op_load_fpr_FT1(rs2); |
|
3869 |
tcg_gen_helper_0_0(helper_fpsub16s); |
|
3870 |
gen_op_store_FT0_fpr(rd); |
|
3863 |
tcg_gen_helper_1_2(helper_fpsub16s, cpu_fpr[rd], |
|
3864 |
cpu_fpr[rs1], cpu_fpr[rs2]); |
|
3871 | 3865 |
break; |
3872 | 3866 |
case 0x056: /* VIS I fpsub32 */ |
3873 | 3867 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3878 | 3872 |
break; |
3879 | 3873 |
case 0x057: /* VIS I fpsub32s */ |
3880 | 3874 |
CHECK_FPU_FEATURE(dc, VIS1); |
3881 |
gen_op_load_fpr_FT0(rs1); |
|
3882 |
gen_op_load_fpr_FT1(rs2); |
|
3883 |
tcg_gen_helper_0_0(helper_fpsub32s); |
|
3884 |
gen_op_store_FT0_fpr(rd); |
|
3875 |
tcg_gen_helper_1_2(helper_fpsub32s, cpu_fpr[rd], |
|
3876 |
cpu_fpr[rs1], cpu_fpr[rs2]); |
|
3885 | 3877 |
break; |
3886 | 3878 |
case 0x060: /* VIS I fzero */ |
3887 | 3879 |
CHECK_FPU_FEATURE(dc, VIS1); |
3888 |
tcg_gen_helper_0_0(helper_movl_DT0_0);
|
|
3889 |
gen_op_store_DT0_fpr(DFPREG(rd));
|
|
3880 |
tcg_gen_movi_i32(cpu_fpr[DFPREG(rd)], 0);
|
|
3881 |
tcg_gen_movi_i32(cpu_fpr[DFPREG(rd) + 1], 0);
|
|
3890 | 3882 |
break; |
3891 | 3883 |
case 0x061: /* VIS I fzeros */ |
3892 | 3884 |
CHECK_FPU_FEATURE(dc, VIS1); |
3893 |
tcg_gen_helper_0_0(helper_movl_FT0_0); |
|
3894 |
gen_op_store_FT0_fpr(rd); |
|
3885 |
tcg_gen_movi_i32(cpu_fpr[rd], 0); |
|
3895 | 3886 |
break; |
3896 | 3887 |
case 0x062: /* VIS I fnor */ |
3897 | 3888 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3902 | 3893 |
break; |
3903 | 3894 |
case 0x063: /* VIS I fnors */ |
3904 | 3895 |
CHECK_FPU_FEATURE(dc, VIS1); |
3905 |
gen_op_load_fpr_FT0(rs1); |
|
3906 |
gen_op_load_fpr_FT1(rs2); |
|
3907 |
tcg_gen_helper_0_0(helper_fnors); |
|
3908 |
gen_op_store_FT0_fpr(rd); |
|
3896 |
tcg_gen_or_i32(cpu_tmp32, cpu_fpr[rs1], cpu_fpr[rs2]); |
|
3897 |
tcg_gen_xori_i32(cpu_fpr[rd], cpu_tmp32, -1); |
|
3909 | 3898 |
break; |
3910 | 3899 |
case 0x064: /* VIS I fandnot2 */ |
3911 | 3900 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3916 | 3905 |
break; |
3917 | 3906 |
case 0x065: /* VIS I fandnot2s */ |
3918 | 3907 |
CHECK_FPU_FEATURE(dc, VIS1); |
3919 |
gen_op_load_fpr_FT1(rs1); |
|
3920 |
gen_op_load_fpr_FT0(rs2); |
|
3921 |
tcg_gen_helper_0_0(helper_fandnots); |
|
3922 |
gen_op_store_FT0_fpr(rd); |
|
3908 |
tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[rs1], -1); |
|
3909 |
tcg_gen_and_i32(cpu_fpr[rd], cpu_tmp32, cpu_fpr[rs2]); |
|
3923 | 3910 |
break; |
3924 | 3911 |
case 0x066: /* VIS I fnot2 */ |
3925 | 3912 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3929 | 3916 |
break; |
3930 | 3917 |
case 0x067: /* VIS I fnot2s */ |
3931 | 3918 |
CHECK_FPU_FEATURE(dc, VIS1); |
3932 |
gen_op_load_fpr_FT1(rs2); |
|
3933 |
tcg_gen_helper_0_0(helper_fnot); |
|
3934 |
gen_op_store_FT0_fpr(rd); |
|
3919 |
tcg_gen_xori_i32(cpu_fpr[rd], cpu_fpr[rs2], -1); |
|
3935 | 3920 |
break; |
3936 | 3921 |
case 0x068: /* VIS I fandnot1 */ |
3937 | 3922 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3942 | 3927 |
break; |
3943 | 3928 |
case 0x069: /* VIS I fandnot1s */ |
3944 | 3929 |
CHECK_FPU_FEATURE(dc, VIS1); |
3945 |
gen_op_load_fpr_FT0(rs1); |
|
3946 |
gen_op_load_fpr_FT1(rs2); |
|
3947 |
tcg_gen_helper_0_0(helper_fandnots); |
|
3948 |
gen_op_store_FT0_fpr(rd); |
|
3930 |
tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[rs2], -1); |
|
3931 |
tcg_gen_and_i32(cpu_fpr[rd], cpu_tmp32, cpu_fpr[rs1]); |
|
3949 | 3932 |
break; |
3950 | 3933 |
case 0x06a: /* VIS I fnot1 */ |
3951 | 3934 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3955 | 3938 |
break; |
3956 | 3939 |
case 0x06b: /* VIS I fnot1s */ |
3957 | 3940 |
CHECK_FPU_FEATURE(dc, VIS1); |
3958 |
gen_op_load_fpr_FT1(rs1); |
|
3959 |
tcg_gen_helper_0_0(helper_fnot); |
|
3960 |
gen_op_store_FT0_fpr(rd); |
|
3941 |
tcg_gen_xori_i32(cpu_fpr[rd], cpu_fpr[rs1], -1); |
|
3961 | 3942 |
break; |
3962 | 3943 |
case 0x06c: /* VIS I fxor */ |
3963 | 3944 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3968 | 3949 |
break; |
3969 | 3950 |
case 0x06d: /* VIS I fxors */ |
3970 | 3951 |
CHECK_FPU_FEATURE(dc, VIS1); |
3971 |
gen_op_load_fpr_FT0(rs1); |
|
3972 |
gen_op_load_fpr_FT1(rs2); |
|
3973 |
tcg_gen_helper_0_0(helper_fxors); |
|
3974 |
gen_op_store_FT0_fpr(rd); |
|
3952 |
tcg_gen_xor_i32(cpu_fpr[rd], cpu_fpr[rs1], cpu_fpr[rs2]); |
|
3975 | 3953 |
break; |
3976 | 3954 |
case 0x06e: /* VIS I fnand */ |
3977 | 3955 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3982 | 3960 |
break; |
3983 | 3961 |
case 0x06f: /* VIS I fnands */ |
3984 | 3962 |
CHECK_FPU_FEATURE(dc, VIS1); |
3985 |
gen_op_load_fpr_FT0(rs1); |
|
3986 |
gen_op_load_fpr_FT1(rs2); |
|
3987 |
tcg_gen_helper_0_0(helper_fnands); |
|
3988 |
gen_op_store_FT0_fpr(rd); |
|
3963 |
tcg_gen_and_i32(cpu_tmp32, cpu_fpr[rs1], cpu_fpr[rs2]); |
|
3964 |
tcg_gen_xori_i32(cpu_fpr[rd], cpu_tmp32, -1); |
|
3989 | 3965 |
break; |
3990 | 3966 |
case 0x070: /* VIS I fand */ |
3991 | 3967 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
3996 | 3972 |
break; |
3997 | 3973 |
case 0x071: /* VIS I fands */ |
3998 | 3974 |
CHECK_FPU_FEATURE(dc, VIS1); |
3999 |
gen_op_load_fpr_FT0(rs1); |
|
4000 |
gen_op_load_fpr_FT1(rs2); |
|
4001 |
tcg_gen_helper_0_0(helper_fands); |
|
4002 |
gen_op_store_FT0_fpr(rd); |
|
3975 |
tcg_gen_and_i32(cpu_fpr[rd], cpu_fpr[rs1], cpu_fpr[rs2]); |
|
4003 | 3976 |
break; |
4004 | 3977 |
case 0x072: /* VIS I fxnor */ |
4005 | 3978 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
4010 | 3983 |
break; |
4011 | 3984 |
case 0x073: /* VIS I fxnors */ |
4012 | 3985 |
CHECK_FPU_FEATURE(dc, VIS1); |
4013 |
gen_op_load_fpr_FT0(rs1); |
|
4014 |
gen_op_load_fpr_FT1(rs2); |
|
4015 |
tcg_gen_helper_0_0(helper_fxnors); |
|
4016 |
gen_op_store_FT0_fpr(rd); |
|
3986 |
tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[rs2], -1); |
|
3987 |
tcg_gen_xor_i32(cpu_fpr[rd], cpu_tmp32, cpu_fpr[rs1]); |
|
4017 | 3988 |
break; |
4018 | 3989 |
case 0x074: /* VIS I fsrc1 */ |
4019 | 3990 |
CHECK_FPU_FEATURE(dc, VIS1); |
4020 |
gen_op_load_fpr_DT0(DFPREG(rs1)); |
|
4021 |
gen_op_store_DT0_fpr(DFPREG(rd)); |
|
3991 |
tcg_gen_mov_i32(cpu_fpr[DFPREG(rd)], cpu_fpr[DFPREG(rs1)]); |
|
3992 |
tcg_gen_mov_i32(cpu_fpr[DFPREG(rd) + 1], |
|
3993 |
cpu_fpr[DFPREG(rs1) + 1]); |
|
4022 | 3994 |
break; |
4023 | 3995 |
case 0x075: /* VIS I fsrc1s */ |
4024 | 3996 |
CHECK_FPU_FEATURE(dc, VIS1); |
4025 |
gen_op_load_fpr_FT0(rs1); |
|
4026 |
gen_op_store_FT0_fpr(rd); |
|
3997 |
tcg_gen_mov_i32(cpu_fpr[rd], cpu_fpr[rs1]); |
|
4027 | 3998 |
break; |
4028 | 3999 |
case 0x076: /* VIS I fornot2 */ |
4029 | 4000 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
4034 | 4005 |
break; |
4035 | 4006 |
case 0x077: /* VIS I fornot2s */ |
4036 | 4007 |
CHECK_FPU_FEATURE(dc, VIS1); |
4037 |
gen_op_load_fpr_FT1(rs1); |
|
4038 |
gen_op_load_fpr_FT0(rs2); |
|
4039 |
tcg_gen_helper_0_0(helper_fornots); |
|
4040 |
gen_op_store_FT0_fpr(rd); |
|
4008 |
tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[rs1], -1); |
|
4009 |
tcg_gen_or_i32(cpu_fpr[rd], cpu_tmp32, cpu_fpr[rs2]); |
|
4041 | 4010 |
break; |
4042 | 4011 |
case 0x078: /* VIS I fsrc2 */ |
4043 | 4012 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
4046 | 4015 |
break; |
4047 | 4016 |
case 0x079: /* VIS I fsrc2s */ |
4048 | 4017 |
CHECK_FPU_FEATURE(dc, VIS1); |
4049 |
gen_op_load_fpr_FT0(rs2); |
|
4050 |
gen_op_store_FT0_fpr(rd); |
|
4018 |
tcg_gen_mov_i32(cpu_fpr[rd], cpu_fpr[rs2]); |
|
4051 | 4019 |
break; |
4052 | 4020 |
case 0x07a: /* VIS I fornot1 */ |
4053 | 4021 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
4058 | 4026 |
break; |
4059 | 4027 |
case 0x07b: /* VIS I fornot1s */ |
4060 | 4028 |
CHECK_FPU_FEATURE(dc, VIS1); |
4061 |
gen_op_load_fpr_FT0(rs1); |
|
4062 |
gen_op_load_fpr_FT1(rs2); |
|
4063 |
tcg_gen_helper_0_0(helper_fornots); |
|
4064 |
gen_op_store_FT0_fpr(rd); |
|
4029 |
tcg_gen_xori_i32(cpu_tmp32, cpu_fpr[rs2], -1); |
|
4030 |
tcg_gen_or_i32(cpu_fpr[rd], cpu_tmp32, cpu_fpr[rs1]); |
|
4065 | 4031 |
break; |
4066 | 4032 |
case 0x07c: /* VIS I for */ |
4067 | 4033 |
CHECK_FPU_FEATURE(dc, VIS1); |
... | ... | |
4072 | 4038 |
break; |
4073 | 4039 |
case 0x07d: /* VIS I fors */ |
4074 | 4040 |
CHECK_FPU_FEATURE(dc, VIS1); |
4075 |
gen_op_load_fpr_FT0(rs1); |
|
4076 |
gen_op_load_fpr_FT1(rs2); |
|
4077 |
tcg_gen_helper_0_0(helper_fors); |
|
4078 |
gen_op_store_FT0_fpr(rd); |
|
4041 |
tcg_gen_or_i32(cpu_fpr[rd], cpu_fpr[rs1], cpu_fpr[rs2]); |
|
4079 | 4042 |
break; |
4080 | 4043 |
case 0x07e: /* VIS I fone */ |
4081 | 4044 |
CHECK_FPU_FEATURE(dc, VIS1); |
4082 |
tcg_gen_helper_0_0(helper_movl_DT0_1);
|
|
4083 |
gen_op_store_DT0_fpr(DFPREG(rd));
|
|
4045 |
tcg_gen_movi_i32(cpu_fpr[DFPREG(rd)], -1);
|
|
4046 |
tcg_gen_movi_i32(cpu_fpr[DFPREG(rd) + 1], -1);
|
|
4084 | 4047 |
break; |
4085 | 4048 |
case 0x07f: /* VIS I fones */ |
4086 | 4049 |
CHECK_FPU_FEATURE(dc, VIS1); |
4087 |
tcg_gen_helper_0_0(helper_movl_FT0_1); |
|
4088 |
gen_op_store_FT0_fpr(rd); |
|
4050 |
tcg_gen_movi_i32(cpu_fpr[rd], -1); |
|
4089 | 4051 |
break; |
4090 | 4052 |
case 0x080: /* VIS I shutdown */ |
4091 | 4053 |
case 0x081: /* VIS II siam */ |
Also available in: Unified diff