Subversion Repositories Kolibri OS

Rev

Rev 1189 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1189 Rev 1242
Line 5967... Line 5967...
5967
	jnz	invalid_operand_size
5967
	jnz	invalid_operand_size
5968
	cmp	al,'('
5968
	cmp	al,'('
5969
	jne	invalid_operand
5969
	jne	invalid_operand
5970
	xor	bl,bl
5970
	xor	bl,bl
5971
	call	store_nomem_instruction
5971
	xchg	bl,[postbyte_register]
-
 
5972
	call	store_nomem_instruction
5972
	call	get_byte_value
5973
	call	get_byte_value
5973
	stosb
5974
	stosb
5974
	call	append_imm8
5975
	call	append_imm8
5975
	jmp	instruction_assembled
5976
	jmp	instruction_assembled
5976
      extrq_xmmreg_xmmreg:
5977
      extrq_xmmreg_xmmreg:
Line 6987... Line 6988...
6987
	mov	eax,[address_high]
6988
	mov	eax,[address_high]
6988
	stos	dword [edi]
6989
	stos	dword [edi]
6989
	ret
6990
	ret
6990
      address_immediate_sib:
6991
      address_immediate_sib:
6991
	test	ch,not 44h
6992
	test	ch,44h
-
 
6993
	jnz	address_immediate_sib_32bit
-
 
6994
	test	ch,not 88h
6992
	jnz	invalid_address_size
6995
	jnz	invalid_address_size
6993
	test	ecx,0FF0000h
6996
	xor	eax,eax
6994
	jnz	address_immediate_sib_nosignextend
6997
	bt	edx,31
6995
	test	edx,80000000h
-
 
6996
	jz	address_immediate_sib_prefix_ok
6998
	sbb	eax,0
6997
      address_immediate_sib_nosignextend:
6999
	cmp	eax,[address_high]
6998
	call	address_32bit_prefix
7000
	jne	value_out_of_range
6999
      address_immediate_sib_prefix_ok:
7001
      address_immediate_sib_store:
7000
	call	store_instruction_code
7002
	call	store_instruction_code
7001
	mov	al,100b
7003
	mov	al,100b
7002
	mov	ah,100101b
7004
	mov	ah,100101b
7003
	mov	cl,[postbyte_register]
7005
	mov	cl,[postbyte_register]
7004
	shl	cl,3
7006
	shl	cl,3
7005
	or	al,cl
7007
	or	al,cl
7006
	stos	word [edi]
7008
	stos	word [edi]
7007
	jmp	store_address_32bit_value
7009
	jmp	store_address_32bit_value
7008
      address_eip_based:
7010
      address_immediate_sib_32bit:
-
 
7011
	test	ecx,0FF0000h
-
 
7012
	jnz	address_immediate_sib_nosignextend
-
 
7013
	test	edx,80000000h
-
 
7014
	jz	address_immediate_sib_store
-
 
7015
      address_immediate_sib_nosignextend:
-
 
7016
	call	address_32bit_prefix
-
 
7017
	jmp	address_immediate_sib_store
-
 
7018
      address_eip_based:
7009
	mov	al,67h
7019
	mov	al,67h
7010
	stos	byte [edi]
7020
	stos	byte [edi]
7011
      address_rip_based:
7021
      address_rip_based:
7012
	cmp	[code_type],64
7022
	cmp	[code_type],64
7013
	jne	invalid_address
7023
	jne	invalid_address