Line 93... |
Line 93... |
rrr <= 3'd0;
|
rrr <= 3'd0;
|
res <= alu_o;
|
res <= alu_o;
|
af <= (al[3:0]>4'h9 || af);
|
af <= (al[3:0]>4'h9 || af);
|
cf <= (al[3:0]>4'h9 || af);
|
cf <= (al[3:0]>4'h9 || af);
|
end
|
end
|
`ADD_ALI8,`ADC_ALI8,`SUB_ALI8,`SBB_ALI8,`AND_ALI8,`OR_ALI8,`XOR_ALI8,`CMP_ALI8:
|
`ADD_ALI8,`ADC_ALI8,`SUB_ALI8,`SBB_ALI8,`AND_ALI8,`OR_ALI8,`XOR_ALI8,`CMP_ALI8,`TEST_ALI8:
|
begin
|
begin
|
w <= 1'b0;
|
w <= 1'b0;
|
a <= {{8{al[7]}},al};
|
a <= {{8{al[7]}},al};
|
rrr <= 3'd0;
|
rrr <= 3'd0;
|
state <= FETCH_IMM8;
|
state <= FETCH_IMM8;
|
end
|
end
|
`ADD_AXI16,`ADC_AXI16,`SUB_AXI16,`SBB_AXI16,`AND_AXI16,`OR_AXI16,`XOR_AXI16,`CMP_AXI16:
|
`ADD_AXI16,`ADC_AXI16,`SUB_AXI16,`SBB_AXI16,`AND_AXI16,`OR_AXI16,`XOR_AXI16,`CMP_AXI16,`TEST_AXI16:
|
begin
|
begin
|
w <= 1'b1;
|
w <= 1'b1;
|
a <= ax;
|
a <= ax;
|
rrr <= 3'd0;
|
rrr <= 3'd0;
|
if (ip==16'hFFFF) begin
|
if (ip==16'hFFFF) begin
|
Line 276... |
Line 276... |
if (v) shftamt <= cl[3:0];
|
if (v) shftamt <= cl[3:0];
|
else shftamt <= 4'd1;
|
else shftamt <= 4'd1;
|
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
// MOD/RM instructions
|
// MOD/RM instructions
|
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
$display("Fetching mod/rm");
|
$display("Fetching mod/rm, w=",w);
|
if (ir==`MOV_R2S || ir==`MOV_S2R)
|
if (ir==`MOV_R2S || ir==`MOV_S2R)
|
w <= 1'b1;
|
w <= 1'b1;
|
if (ir==`LDS || ir==`LES)
|
if (ir==`LDS || ir==`LES)
|
w <= 1'b1;
|
w <= 1'b1;
|
if (fetch_modrm) begin
|
if (fetch_modrm) begin
|