aboutsummaryrefslogtreecommitdiff
path: root/op-i386.c
diff options
context:
space:
mode:
Diffstat (limited to 'op-i386.c')
-rw-r--r--op-i386.c46
1 files changed, 9 insertions, 37 deletions
diff --git a/op-i386.c b/op-i386.c
index 77f3303e3b..a7e057bddc 100644
--- a/op-i386.c
+++ b/op-i386.c
@@ -80,62 +80,34 @@ static inline int lshift(int x, int n)
/* operations with flags */
-void OPPROTO op_addl_T0_T1_cc(void)
+/* update flags with T0 and T1 (add/sub case) */
+void OPPROTO op_update2_cc(void)
{
- CC_SRC = T0;
- T0 += T1;
+ CC_SRC = T1;
CC_DST = T0;
}
-void OPPROTO op_orl_T0_T1_cc(void)
+/* update flags with T0 (logic operation case) */
+void OPPROTO op_update1_cc(void)
{
- T0 |= T1;
- CC_DST = T0;
-}
-
-void OPPROTO op_andl_T0_T1_cc(void)
-{
- T0 &= T1;
CC_DST = T0;
}
-void OPPROTO op_subl_T0_T1_cc(void)
+void OPPROTO op_update_neg_cc(void)
{
- CC_SRC = T0;
- T0 -= T1;
- CC_DST = T0;
-}
-
-void OPPROTO op_xorl_T0_T1_cc(void)
-{
- T0 ^= T1;
+ CC_SRC = -T0;
CC_DST = T0;
}
void OPPROTO op_cmpl_T0_T1_cc(void)
{
- CC_SRC = T0;
+ CC_SRC = T1;
CC_DST = T0 - T1;
}
-void OPPROTO op_negl_T0_cc(void)
-{
- CC_SRC = 0;
- T0 = -T0;
- CC_DST = T0;
-}
-
-void OPPROTO op_incl_T0_cc(void)
-{
- CC_SRC = cc_table[CC_OP].compute_c();
- T0++;
- CC_DST = T0;
-}
-
-void OPPROTO op_decl_T0_cc(void)
+void OPPROTO op_update_inc_cc(void)
{
CC_SRC = cc_table[CC_OP].compute_c();
- T0--;
CC_DST = T0;
}