|
@@ -0,0 +1,31 @@
|
|
|
+{ %OPT=-O3 }
|
|
|
+
|
|
|
+{ Test triggers "mov $0,%reg" being inserted on the wrong side of a SETcc instruction }
|
|
|
+program tw39922.pp;
|
|
|
+
|
|
|
+{$mode objfpc}
|
|
|
+
|
|
|
+uses sysutils;
|
|
|
+
|
|
|
+function isAlpha(c : Byte): Integer;
|
|
|
+begin
|
|
|
+ if ((AnsiChar(c) >= 'A') and (AnsiChar(c) <= 'Z')) or
|
|
|
+ ((AnsiChar(c) >= 'a') and (AnsiChar(c) <= 'z'))
|
|
|
+ then
|
|
|
+ Result := 1
|
|
|
+ else
|
|
|
+ Result := 0;
|
|
|
+end;
|
|
|
+
|
|
|
+begin
|
|
|
+ if (isAlpha(Byte('u')) = 0) then
|
|
|
+ Halt(1);
|
|
|
+
|
|
|
+ if (isAlpha(Byte('A')) = 0) then
|
|
|
+ Halt(2);
|
|
|
+
|
|
|
+ if (isAlpha(Byte('2')) = 1) then
|
|
|
+ Halt(3);
|
|
|
+
|
|
|
+ WriteLn('ok');
|
|
|
+end.
|