mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-08 10:39:29 +02:00
* the next try to fix the case problem ...
This commit is contained in:
parent
90f65781c2
commit
8861c72aef
@ -525,7 +525,7 @@ implementation
|
||||
{ ELSE-label }
|
||||
if first then
|
||||
begin
|
||||
{ have we to ajust the first value ?}
|
||||
{ have we to ajust the first value ? }
|
||||
if t^._low>get_min_value(p^.left^.resulttype) then
|
||||
begin
|
||||
if t^._low=1 then
|
||||
@ -551,13 +551,12 @@ implementation
|
||||
{ immediately. else check the range in between: }
|
||||
if (t^._low-last>1) then
|
||||
begin
|
||||
if t^._low-last-1=1 then
|
||||
exprasmlist^.concat(new(pai386,op_reg(A_DEC,opsize,hregister)))
|
||||
else
|
||||
exprasmlist^.concat(new(pai386,op_const_reg(A_SUB,opsize,t^._low-last-1,hregister)));
|
||||
exprasmlist^.concat(new(pai386,op_const_reg(A_SUB,opsize,t^._low-last,hregister)));
|
||||
emitl(jmp_le,elselabel);
|
||||
end;
|
||||
exprasmlist^.concat(new(pai386,op_const_reg(A_SUB,opsize,t^._high-t^._low+1,hregister)));
|
||||
end
|
||||
else
|
||||
exprasmlist^.concat(new(pai386,op_reg(A_DEC,opsize,hregister)));
|
||||
exprasmlist^.concat(new(pai386,op_const_reg(A_SUB,opsize,t^._high-t^._low,hregister)));
|
||||
emitl(jmp_lee,t^.statement);
|
||||
|
||||
last:=t^._high;
|
||||
@ -784,7 +783,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.14 1998-09-09 16:44:21 florian
|
||||
Revision 1.15 1998-09-09 17:51:59 florian
|
||||
* the next try to fix the case problem ...
|
||||
|
||||
Revision 1.14 1998/09/09 16:44:21 florian
|
||||
* I hope, the case bug is fixed now
|
||||
|
||||
Revision 1.13 1998/09/07 18:45:54 peter
|
||||
|
Loading…
Reference in New Issue
Block a user