# Patch created by krokas
# Date: Sat Nov 11 19:27:02 MSK 2006
# Repository: libjit
# Comments:
# 
#### End of Preamble ####

#### Patch data follows ####
Index: jit/jit-rules-x86.ins
===================================================================
RCS file: /sources/dotgnu-pnet/./libjit/jit/jit-rules-x86.ins,v
retrieving revision 1.19
diff -c -r1.19 jit-rules-x86.ins
*** jit/jit-rules-x86.ins	10 Nov 2006 21:03:09 -0000	1.19
--- jit/jit-rules-x86.ins	11 Nov 2006 15:26:39 -0000
***************
*** 583,588 ****
--- 583,608 ----
  		}
  		x86_shift_reg_imm(inst, X86_SHR, $1, shift);
  	}
+ 	[=reg("edx"), reg("eax"), imm, if("$3 == 3"), scratch("eax")] -> {
+ 		x86_mov_reg_imm(inst, X86_EDX, 0xaaaaaaab);
+ 		x86_mul_reg(inst, X86_EDX, 0);
+ 		x86_shift_reg_imm(inst, X86_SHR, X86_EDX, 1);	
+ 	}
+ 	[=reg("edx"), reg("eax"), imm, if("$3 == 5"), scratch("eax")] -> {
+ 		x86_mov_reg_imm(inst, X86_EDX, 0xcccccccd);
+ 		x86_mul_reg(inst, X86_EDX, 0);
+ 		x86_shift_reg_imm(inst, X86_SHR, X86_EDX, 2);
+ 	}
+ 	[=reg("edx"), reg("eax"), imm, if("$3 == 10"), scratch("eax")] -> {
+ 		x86_mov_reg_imm(inst, X86_EDX, 0xcccccccd);
+ 		x86_mul_reg(inst, X86_EDX, 0);
+ 		x86_shift_reg_imm(inst, X86_SHR, X86_EDX, 3);
+ 	}
+ 	[reg, imm, if("$2 == 0xffffffff")] -> {
+ 		x86_alu_reg_imm(inst, X86_ADD, $1, 1);
+ 		x86_mov_reg_imm(inst, $1, 0);
+ 		x86_alu_reg_imm(inst, X86_ADC, $1, 0);
+ 	}
  	[reg("eax"), imm, scratch("?", "edx")] -> {
  		x86_mov_reg_imm(inst, $3, $2);
  		x86_clear_reg(inst, X86_EDX);
#### End of Patch data ####
