pierre 25 years ago
parent
commit
a4e193a680
3 changed files with 117 additions and 0 deletions
  1. 41 0
      tests/webtbf/tb1157a.pp
  2. 41 0
      tests/webtbf/tbug1157.pp
  3. 35 0
      tests/webtbs/tbug1157.pp

+ 41 - 0
tests/webtbf/tb1157a.pp

@@ -0,0 +1,41 @@
+{ Source provided for Free Pascal Bug Report 1157 }
+{ Submitted by "Colin Goldie" on  2000-10-06 }
+{ e-mail: [email protected] }
+
+{$mode tp}
+
+{$asmmode intel}
+
+{ @Result in assembler functions where
+  the function result is not on stack
+  should be refused in Turbo Pascal mode }
+
+Function GetBLUEfromRGB( color : word ) : byte; assembler;
+asm
+    mov cx,color
+    and cx,0000000000011111b
+    mov @Result,cl
+end;
+
+{
+Does something weird .. to the stack im guessing ... error 206 and 103
+errors occur 'File not open' ...
+
+However, if instead of using @Result , i chuck my return value into the
+accumulator register , everything thing works hunky dory.
+}
+
+Function GetBLUEfromRGB2( color : word ) : byte; assembler;
+asm
+     mov cx,color
+     and cx,0000000000011111b
+     mov al,cl
+end;
+
+begin
+  if GetBlueFromRGB2($fff)<>GetBlueFromRGB($fff) then
+    begin
+      Writeln('Error in assembler statement');
+      Halt(1);
+    end;
+end.

+ 41 - 0
tests/webtbf/tbug1157.pp

@@ -0,0 +1,41 @@
+{ Source provided for Free Pascal Bug Report 1157 }
+{ Submitted by "Colin Goldie" on  2000-10-06 }
+{ e-mail: [email protected] }
+
+{$mode delphi}
+
+{$asmmode intel}
+
+{ @Result in assembler functions where
+  the function result is not on stack
+  should be refused in Delphi mode }
+
+Function GetBLUEfromRGB( color : word ) : byte; assembler;
+asm
+    mov cx,color
+    and cx,0000000000011111b
+    mov @Result,cl
+end;
+
+{
+Does something weird .. to the stack im guessing ... error 206 and 103
+errors occur 'File not open' ...
+
+However, if instead of using @Result , i chuck my return value into the
+accumulator register , everything thing works hunky dory.
+}
+
+Function GetBLUEfromRGB2( color : word ) : byte; assembler;
+asm
+     mov cx,color
+     and cx,0000000000011111b
+     mov al,cl
+end;
+
+begin
+  if GetBlueFromRGB2($fff)<>GetBlueFromRGB($fff) then
+    begin
+      Writeln('Error in assembler statement');
+      Halt(1);
+    end;
+end.

+ 35 - 0
tests/webtbs/tbug1157.pp

@@ -0,0 +1,35 @@
+{ Source provided for Free Pascal Bug Report 1157 }
+{ Submitted by "Colin Goldie" on  2000-10-06 }
+{ e-mail: [email protected] }
+
+{$asmmode intel}
+
+Function GetBLUEfromRGB( color : word ) : byte; assembler;
+asm
+    mov cx,color
+    and cx,0000000000011111b
+    mov @Result,cl
+end;
+
+{
+Does something weird .. to the stack im guessing ... error 206 and 103
+errors occur 'File not open' ...
+
+However, if instead of using @Result , i chuck my return value into the
+accumulator register , everything thing works hunky dory.
+}
+
+Function GetBLUEfromRGB2( color : word ) : byte; assembler;
+asm
+     mov cx,color
+     and cx,0000000000011111b
+     mov al,cl
+end;
+
+begin
+  if GetBlueFromRGB2($fff)<>GetBlueFromRGB($fff) then
+    begin
+      Writeln('Error in assembler statement');
+      Halt(1);
+    end;
+end.