Revision 2ca1d92b target-sparc/op_helper.c
b/target-sparc/op_helper.c | ||
---|---|---|
972 | 972 |
} |
973 | 973 |
#endif |
974 | 974 |
|
975 |
static uint32_t compute_all_subx(void) |
|
976 |
{ |
|
977 |
uint32_t ret; |
|
978 |
|
|
979 |
ret = get_NZ_icc(CC_DST); |
|
980 |
ret |= get_C_sub_icc(CC_DST - CC_SRC2, CC_SRC); |
|
981 |
ret |= get_C_sub_icc(CC_DST, CC_SRC2); |
|
982 |
ret |= get_V_sub_icc(CC_DST, CC_SRC, CC_SRC2); |
|
983 |
return ret; |
|
984 |
} |
|
985 |
|
|
986 |
static uint32_t compute_C_subx(void) |
|
987 |
{ |
|
988 |
uint32_t ret; |
|
989 |
|
|
990 |
ret = get_C_sub_icc(CC_DST - CC_SRC2, CC_SRC); |
|
991 |
ret |= get_C_sub_icc(CC_DST, CC_SRC2); |
|
992 |
return ret; |
|
993 |
} |
|
994 |
|
|
995 |
#ifdef TARGET_SPARC64 |
|
996 |
static uint32_t compute_all_subx_xcc(void) |
|
997 |
{ |
|
998 |
uint32_t ret; |
|
999 |
|
|
1000 |
ret = get_NZ_xcc(CC_DST); |
|
1001 |
ret |= get_C_sub_xcc(CC_DST - CC_SRC2, CC_SRC); |
|
1002 |
ret |= get_C_sub_xcc(CC_DST, CC_SRC2); |
|
1003 |
ret |= get_V_sub_xcc(CC_DST, CC_SRC, CC_SRC2); |
|
1004 |
return ret; |
|
1005 |
} |
|
1006 |
|
|
1007 |
static uint32_t compute_C_subx_xcc(void) |
|
1008 |
{ |
|
1009 |
uint32_t ret; |
|
1010 |
|
|
1011 |
ret = get_C_sub_xcc(CC_DST - CC_SRC2, CC_SRC); |
|
1012 |
ret |= get_C_sub_xcc(CC_DST, CC_SRC2); |
|
1013 |
return ret; |
|
1014 |
} |
|
1015 |
#endif |
|
1016 |
|
|
975 | 1017 |
static uint32_t compute_all_logic(void) |
976 | 1018 |
{ |
977 | 1019 |
return get_NZ_icc(CC_DST); |
... | ... | |
1000 | 1042 |
[CC_OP_ADD] = { compute_all_add, compute_C_add }, |
1001 | 1043 |
[CC_OP_ADDX] = { compute_all_addx, compute_C_addx }, |
1002 | 1044 |
[CC_OP_SUB] = { compute_all_sub, compute_C_sub }, |
1045 |
[CC_OP_SUBX] = { compute_all_subx, compute_C_subx }, |
|
1003 | 1046 |
[CC_OP_LOGIC] = { compute_all_logic, compute_C_logic }, |
1004 | 1047 |
}; |
1005 | 1048 |
|
... | ... | |
1010 | 1053 |
[CC_OP_ADD] = { compute_all_add_xcc, compute_C_add_xcc }, |
1011 | 1054 |
[CC_OP_ADDX] = { compute_all_addx_xcc, compute_C_addx_xcc }, |
1012 | 1055 |
[CC_OP_SUB] = { compute_all_sub_xcc, compute_C_sub_xcc }, |
1056 |
[CC_OP_SUBX] = { compute_all_subx_xcc, compute_C_subx_xcc }, |
|
1013 | 1057 |
[CC_OP_LOGIC] = { compute_all_logic_xcc, compute_C_logic }, |
1014 | 1058 |
}; |
1015 | 1059 |
#endif |
Also available in: Unified diff