1 #ifndef ASM_X86_INTERNAL_H
2 #warning Do not include this file directly
3 #else
4 
asm_andl(struct assembler_state_t * state,const uint32_t src,uint32_t * dst)5 static inline void asm_andl(struct assembler_state_t *state, const uint32_t src, uint32_t *dst)
6 {
7 	*dst = *dst & src;
8 
9 	write_cf(state->eflags, 0);
10 	write_of(state->eflags, 0);
11 
12 	write_sf(state->eflags, *dst & 0x80000000);
13 	write_zf(state->eflags, !*dst);
14 #ifdef X86_PF
15 	asm_update_pf(state->eflags, *dst);
16 #endif
17 }
asm_andw(struct assembler_state_t * state,const uint16_t src,uint16_t * dst)18 static inline void asm_andw(struct assembler_state_t *state, const uint16_t src, uint16_t *dst)
19 {
20 	*dst = *dst & src;
21 
22 	write_cf(state->eflags, 0);
23 	write_of(state->eflags, 0);
24 
25 	write_sf(state->eflags, *dst & 0x8000);
26 	write_zf(state->eflags, !*dst);
27 #ifdef X86_PF
28 	asm_update_pf(state->eflags, *dst);
29 #endif
30 }
asm_andb(struct assembler_state_t * state,const uint8_t src,uint8_t * dst)31 static inline void asm_andb(struct assembler_state_t *state, const uint8_t src, uint8_t *dst)
32 {
33 	*dst = *dst & src;
34 
35 	write_cf(state->eflags, 0);
36 	write_of(state->eflags, 0);
37 
38 	write_sf(state->eflags, *dst & 0x80);
39 	write_zf(state->eflags, !*dst);
40 #ifdef X86_PF
41 	asm_update_pf(state->eflags, *dst);
42 #endif
43 }
44 
45 #endif
46