Rev 607 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 607 | Rev 707 | ||
---|---|---|---|
Line 5020... | Line 5020... | ||
5020 | mov [extended_code],0D6h |
5020 | mov [extended_code],0D6h |
5021 | call store_nomem_instruction |
5021 | call store_nomem_instruction |
5022 | jmp instruction_assembled |
5022 | jmp instruction_assembled |
5023 | 5023 | ||
Line -... | Line 5024... | ||
- | 5024 | sse_ps_instruction_imm8: |
|
- | 5025 | mov [immediate_size],8 |
|
5024 | sse_ps_instruction: |
5026 | sse_ps_instruction: |
5025 | mov [mmx_size],16 |
5027 | mov [mmx_size],16 |
5026 | jmp sse_instruction |
5028 | jmp sse_instruction |
- | 5029 | sse_pd_instruction_imm8: |
|
- | 5030 | mov [immediate_size],8 |
|
5027 | sse_pd_instruction: |
5031 | sse_pd_instruction: |
5028 | mov [mmx_size],16 |
5032 | mov [mmx_size],16 |
5029 | mov [operand_prefix],66h |
5033 | mov [operand_prefix],66h |
5030 | jmp sse_instruction |
5034 | jmp sse_instruction |
5031 | sse_ss_instruction: |
5035 | sse_ss_instruction: |
Line 5084... | Line 5088... | ||
5084 | mov al,[mmx_size] |
5088 | mov al,[mmx_size] |
5085 | cmp [operand_size],al |
5089 | cmp [operand_size],al |
5086 | jne invalid_operand_size |
5090 | jne invalid_operand_size |
5087 | sse_mem_size_ok: |
5091 | sse_mem_size_ok: |
5088 | cmp [extended_code],0C6h |
5092 | cmp [immediate_size],8 |
5089 | je mmx_imm8 |
5093 | je mmx_imm8 |
5090 | call store_instruction |
5094 | cmp [immediate_size],-1 |
- | 5095 | jne sse_ok |
|
- | 5096 | call take_additional_xmm0 |
|
- | 5097 | sse_ok: |
|
- | 5098 | call store_instruction |
|
5091 | jmp instruction_assembled |
5099 | jmp instruction_assembled |
5092 | sse_xmmreg_xmmreg: |
5100 | sse_xmmreg_xmmreg: |
5093 | cmp [operand_prefix],66h |
5101 | cmp [operand_prefix],66h |
5094 | jne sse_xmmreg_xmmreg_ok |
5102 | jne sse_xmmreg_xmmreg_ok |
5095 | cmp [extended_code],12h |
5103 | cmp [extended_code],12h |
Line 5101... | Line 5109... | ||
5101 | call convert_mmx_register |
5109 | call convert_mmx_register |
5102 | cmp ah,16 |
5110 | cmp ah,16 |
5103 | jne invalid_operand_size |
5111 | jne invalid_operand_size |
5104 | mov bl,al |
5112 | mov bl,al |
5105 | cmp [extended_code],0C6h |
5113 | cmp [immediate_size],8 |
5106 | je mmx_nomem_imm8 |
5114 | je mmx_nomem_imm8 |
5107 | call store_nomem_instruction |
5115 | cmp [immediate_size],-1 |
- | 5116 | jne sse_nomem_ok |
|
- | 5117 | call take_additional_xmm0 |
|
- | 5118 | sse_nomem_ok: |
|
- | 5119 | call store_nomem_instruction |
|
5108 | jmp instruction_assembled |
5120 | jmp instruction_assembled |
5109 | ps_dq_instruction: |
5121 | take_additional_xmm0: |
- | 5122 | lods byte [esi] |
|
- | 5123 | cmp al,',' |
|
- | 5124 | jne invalid_operand |
|
- | 5125 | lods byte [esi] |
|
- | 5126 | cmp al,10h |
|
- | 5127 | jne invalid_operand |
|
- | 5128 | lods byte [esi] |
|
- | 5129 | call convert_mmx_register |
|
- | 5130 | cmp ah,16 |
|
- | 5131 | jne invalid_operand_size |
|
- | 5132 | test al,al |
|
- | 5133 | jnz invalid_operand |
|
- | 5134 | ret |
|
- | 5135 | ||
- | 5136 | ps_dq_instruction: |
|
5110 | mov [postbyte_register],al |
5137 | mov [postbyte_register],al |
5111 | mov [operand_prefix],66h |
5138 | mov [operand_prefix],66h |
5112 | mov [base_code],0Fh |
5139 | mov [base_code],0Fh |
5113 | mov [extended_code],73h |
5140 | mov [extended_code],73h |
5114 | lods byte [esi] |
5141 | lods byte [esi] |
Line 5583... | Line 5610... | ||
5583 | mov al,byte [value] |
5610 | mov al,byte [value] |
5584 | stos byte [edi] |
5611 | stos byte [edi] |
5585 | jmp instruction_assembled |
5612 | jmp instruction_assembled |
5586 | 5613 | ||
Line -... | Line 5614... | ||
- | 5614 | sse4_instruction_38_xmm0: |
|
- | 5615 | mov [immediate_size],-1 |
|
- | 5616 | jmp sse4_instruction_38 |
|
- | 5617 | sse4_instruction_38_imm8: |
|
- | 5618 | mov [immediate_size],8 |
|
- | 5619 | sse4_instruction_38: |
|
- | 5620 | mov [operand_prefix],66h |
|
- | 5621 | mov [base_code],0Fh |
|
- | 5622 | mov [supplemental_code],al |
|
- | 5623 | mov al,38h |
|
- | 5624 | jmp sse_instruction |
|
- | 5625 | sse4_instruction_3a_imm8: |
|
- | 5626 | mov [immediate_size],8 |
|
- | 5627 | sse4_instruction_3a: |
|
- | 5628 | mov [operand_prefix],66h |
|
- | 5629 | mov [base_code],0Fh |
|
- | 5630 | mov [supplemental_code],al |
|
- | 5631 | mov al,3Ah |
|
- | 5632 | jmp sse_instruction |
|
- | 5633 | ||
5587 | fxsave_instruction: |
5634 | fxsave_instruction: |
5588 | mov [extended_code],0AEh |
5635 | mov [extended_code],0AEh |
5589 | mov [base_code],0Fh |
5636 | mov [base_code],0Fh |
5590 | mov [postbyte_register],al |
5637 | mov [postbyte_register],al |
5591 | lods byte [esi] |
5638 | lods byte [esi] |
Line 6061... | Line 6108... | ||
6061 | call calculate_relative_offset |
6108 | call calculate_relative_offset |
6062 | mov [address_high],edx |
6109 | mov [address_high],edx |
6063 | cdq |
6110 | cdq |
6064 | cmp edx,[address_high] |
6111 | cmp edx,[address_high] |
6065 | jne value_out_of_range |
6112 | je address_high_ok |
- | 6113 | cmp [error_line],0 |
|
- | 6114 | jne address_high_ok |
|
- | 6115 | mov ebx,[current_line] |
|
- | 6116 | mov [error_line],ebx |
|
- | 6117 | mov [error],value_out_of_range |
|
6066 | mov edx,eax |
6118 | address_high_ok: |
- | 6119 | mov edx,eax |
|
6067 | ror ecx,16 |
6120 | ror ecx,16 |
6068 | mov cl,[value_type] |
6121 | mov cl,[value_type] |
6069 | rol ecx,16 |
6122 | rol ecx,16 |
6070 | mov bx,0FF00h |
6123 | mov bx,0FF00h |
6071 | address_ok: |
6124 | address_ok: |