127458df8SWei Liu ///////////////////////////////////////////////////////////////////////// 227458df8SWei Liu // 327458df8SWei Liu // Copyright (C) 2001-2012 The Bochs Project 427458df8SWei Liu // Copyright (C) 2017 Google Inc. 527458df8SWei Liu // 627458df8SWei Liu // This library is free software; you can redistribute it and/or 727458df8SWei Liu // modify it under the terms of the GNU Lesser General Public 827458df8SWei Liu // License as published by the Free Software Foundation; either 927458df8SWei Liu // version 2.1 of the License, or (at your option) any later version. 1027458df8SWei Liu // 1127458df8SWei Liu // This library is distributed in the hope that it will be useful, 1227458df8SWei Liu // but WITHOUT ANY WARRANTY; without even the implied warranty of 1327458df8SWei Liu // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1427458df8SWei Liu // Lesser General Public License for more details. 1527458df8SWei Liu // 1627458df8SWei Liu // You should have received a copy of the GNU Lesser General Public 17*fd68168eSSean Wei // License along with this library; if not, see 18*fd68168eSSean Wei // <https://www.gnu.org/licenses/>. 1927458df8SWei Liu ///////////////////////////////////////////////////////////////////////// 2027458df8SWei Liu /* 2127458df8SWei Liu * x86 eflags functions 2227458df8SWei Liu */ 2327458df8SWei Liu 2427458df8SWei Liu #ifndef X86_EMU_FLAGS_H 2527458df8SWei Liu #define X86_EMU_FLAGS_H 2627458df8SWei Liu 2727458df8SWei Liu #include "cpu.h" 2827458df8SWei Liu void lflags_to_rflags(CPUX86State *env); 2927458df8SWei Liu void rflags_to_lflags(CPUX86State *env); 3027458df8SWei Liu 3127458df8SWei Liu bool get_CF(CPUX86State *env); 3227458df8SWei Liu void set_CF(CPUX86State *env, bool val); 3327458df8SWei Liu 345b80dcf9SPaolo Bonzini void SET_FLAGS_OxxxxC(CPUX86State *env, bool new_of, bool new_cf); 3527458df8SWei Liu 3627458df8SWei Liu void SET_FLAGS_OSZAPC_SUB32(CPUX86State *env, uint32_t v1, uint32_t v2, 3727458df8SWei Liu uint32_t diff); 3827458df8SWei Liu void SET_FLAGS_OSZAPC_SUB16(CPUX86State *env, uint16_t v1, uint16_t v2, 3927458df8SWei Liu uint16_t diff); 4027458df8SWei Liu void SET_FLAGS_OSZAPC_SUB8(CPUX86State *env, uint8_t v1, uint8_t v2, 4127458df8SWei Liu uint8_t diff); 4227458df8SWei Liu 4327458df8SWei Liu void SET_FLAGS_OSZAPC_ADD32(CPUX86State *env, uint32_t v1, uint32_t v2, 4427458df8SWei Liu uint32_t diff); 4527458df8SWei Liu void SET_FLAGS_OSZAPC_ADD16(CPUX86State *env, uint16_t v1, uint16_t v2, 4627458df8SWei Liu uint16_t diff); 4727458df8SWei Liu void SET_FLAGS_OSZAPC_ADD8(CPUX86State *env, uint8_t v1, uint8_t v2, 4827458df8SWei Liu uint8_t diff); 4927458df8SWei Liu 5027458df8SWei Liu void SET_FLAGS_OSZAP_SUB32(CPUX86State *env, uint32_t v1, uint32_t v2, 5127458df8SWei Liu uint32_t diff); 5227458df8SWei Liu void SET_FLAGS_OSZAP_SUB16(CPUX86State *env, uint16_t v1, uint16_t v2, 5327458df8SWei Liu uint16_t diff); 5427458df8SWei Liu void SET_FLAGS_OSZAP_SUB8(CPUX86State *env, uint8_t v1, uint8_t v2, 5527458df8SWei Liu uint8_t diff); 5627458df8SWei Liu 5727458df8SWei Liu void SET_FLAGS_OSZAP_ADD32(CPUX86State *env, uint32_t v1, uint32_t v2, 5827458df8SWei Liu uint32_t diff); 5927458df8SWei Liu void SET_FLAGS_OSZAP_ADD16(CPUX86State *env, uint16_t v1, uint16_t v2, 6027458df8SWei Liu uint16_t diff); 6127458df8SWei Liu void SET_FLAGS_OSZAP_ADD8(CPUX86State *env, uint8_t v1, uint8_t v2, 6227458df8SWei Liu uint8_t diff); 6327458df8SWei Liu 6427458df8SWei Liu void SET_FLAGS_OSZAPC_LOGIC32(CPUX86State *env, uint32_t v1, uint32_t v2, 6527458df8SWei Liu uint32_t diff); 6627458df8SWei Liu void SET_FLAGS_OSZAPC_LOGIC16(CPUX86State *env, uint16_t v1, uint16_t v2, 6727458df8SWei Liu uint16_t diff); 6827458df8SWei Liu void SET_FLAGS_OSZAPC_LOGIC8(CPUX86State *env, uint8_t v1, uint8_t v2, 6927458df8SWei Liu uint8_t diff); 7027458df8SWei Liu 7127458df8SWei Liu #endif /* X86_EMU_FLAGS_H */ 72