Re: [fpc-devel] win32 debugging broken in fixes_2_2

2007-07-13 Thread Florian Klaempfl
Alexander schrieb:
 That's a point though I thought we could safe this extra check
 because I didn't expect that a lot of people are still using PII :)
 
 My current computer is PII. 350MHz 128 RAM 40G HDD
 It work !
 Free soft inteneded for save old computers.
 Linux kernel can run on 386 CPU and support MFM HDD.
 FPC and MSE must work on PII !

Feel free to provide a patch if you think so. This is fpc-devel.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2

2007-07-13 Thread Martin Schreiber
On Friday 13 July 2007 08.54, Florian Klaempfl wrote:
 Alexander schrieb:
  That's a point though I thought we could safe this extra check
  because I didn't expect that a lot of people are still using PII :)
 
  My current computer is PII. 350MHz 128 RAM 40G HDD
  It work !
  Free soft inteneded for save old computers.
  Linux kernel can run on 386 CPU and support MFM HDD.
  FPC and MSE must work on PII !

 Feel free to provide a patch if you think so. This is fpc-devel.

Patch uploaded to Mantis.

Martin
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2

2007-07-12 Thread Alexander
 That's a point though I thought we could safe this extra check
 because I didn't expect that a lot of people are still using PII :)

My current computer is PII. 350MHz 128 RAM 40G HDD
It work !
Free soft inteneded for save old computers.
Linux kernel can run on 386 CPU and support MFM HDD.
FPC and MSE must work on PII !
MSE MUST BE IN TOP PRIORITY AT FPC DEVELOPERS !
FPC have only one working RAD IDE - MSE.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-12 Thread Alexander
 That's a point though I thought we could safe this extra check
 because I didn't expect that a lot of people are still using PII :)  

My current computer is PII. 350MHz 128 RAM 40G HDD
It work !
Free soft inteneded for save old computers.
Linux kernel can run on 386 CPU and support MFM HDD.
FPC and MSE must work on PII !
MSE MUST BE IN TOP PRIORITY AT FPC DEVELOPERS !
FPC have only one working RAD IDE - MSE.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-11 Thread Florian Klaempfl
Sergei Gorelkin schrieb:
 Wednesday, July 11, 2007, 12:06:51 AM, Florian wrote:
 
 FK Vinzent Hoefler schrieb:
 On Tuesday 10 July 2007 09:58, Vinzent Hoefler wrote:
 On Tuesday 10 July 2007 12:40, Yury Sidorov wrote:
 Maybe other way to detect SSE support exists...
 CPUID?
 To be more precise, the way recommended by Intel:

 To make this check, execute the CPUID instruction with an argument of 1 
 in the EAX register, and check that bit 25 (SSE) and/or bit 26 (SSE2) 
 are set to 1.

   -- IA32 Software Developer's Manual,
  Volume 3: System Programming Guide
 
 This gives you only the information that the CPU supports it but not if
 the OS supports it.
 
 But, if CPU has no SSE2 support, then OS is unable to support it, too?
 And if CPU has SSE2 support, modern OSes probably tend to support it.
 Thus, by checking CPUID before attempting to execute an SSE2
 instruction you'll be able to exclude exceptions in vast majority of
 cases.
 

That's a point though I thought we could safe this extra check because I
didn't expect that a lot of people are still using PII :)

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-11 Thread Micha Nelissen

Yury Sidorov wrote:

CPU supports it. But CPU support doesn't mean OS support. And to check
if the OS supports SSE you've to execute an sse instruction and handle
the exception.


Florian, to prevent SIGILL on non SSE CPUs we can first check CPUID and 
execute sse instruction only if CPUID reports SSE support.


What happens then if OS doesn't support it ?

Micha
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-11 Thread Florian Klaempfl
Micha Nelissen schrieb:
 Yury Sidorov wrote:
 CPU supports it. But CPU support doesn't mean OS support. And to check
 if the OS supports SSE you've to execute an sse instruction and handle
 the exception.

 Florian, to prevent SIGILL on non SSE CPUs we can first check CPUID
 and execute sse instruction only if CPUID reports SSE support.
 
 What happens then if OS doesn't support it ?

SIGILL on the first sse instruction.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-11 Thread Martin Schreiber
On Wednesday 11 July 2007 08.39, Florian Klaempfl wrote:

 That's a point though I thought we could safe this extra check because I
 didn't expect that a lot of people are still using PII :)

A PII with 256MB ram is my main development machine. Do you see why 
MSEide+MSEgui is so fast? ;-)
From time to time I even use a K6 with win98.

Martin
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-11 Thread Florian Klaempfl
Vinzent Hoefler schrieb:
 On Wednesday 11 July 2007 06:39, Florian Klaempfl wrote:
 
 That's a point though I thought we could safe this extra check
 because I didn't expect that a lot of people are still using PII :)
 
 Well, if the OS supports SSE and thus no SIGILL is generated, what would 
 be the point in using CPUID to check for SSE *after* that at all? ;)

To get the level of sse support but this is not used by the system iirc
so we can swap these checks indeed.

 
 Honestly, I don't think that extra check would hurt anyone.
 
 
 Vinzent.
 
 ___
 fpc-devel maillist  -  fpc-devel@lists.freepascal.org
 http://lists.freepascal.org/mailman/listinfo/fpc-devel

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Martin Schreiber
Hi,
Every program compiled with fixes_2_2 rev. 8006 crashes
in gdb:

GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for details.
This GDB was configured as i686-pc-mingw32...
(gdb) run
Starting program: G:\testcase\mse\console/console.exe
Loaded symbols for C:\WINNT\system32\KERNEL32.DLL
Loaded symbols for C:\WINNT\system32\OLEAUT32.DLL
Loaded symbols for C:\WINNT\system32\OLE32.DLL
Loaded symbols for C:\WINNT\system32\rpcrt4.dll
Loaded symbols for C:\WINNT\system32\ADVAPI32.DLL
Loaded symbols for C:\WINNT\system32\GDI32.DLL
Loaded symbols for C:\WINNT\system32\USER32.DLL

Program received signal SIGILL, Illegal instruction.
0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
(gdb) bt
#0  0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
#1  0x0040a504 in SYSTEM_init ()
#2  0x00406114 in fpc_initializeunits ()
#3  0x7ffdf000 in ?? ()
#4  0x in ?? ()
(gdb)

The programs work without gdb.
System: win2000, PII.
The problem seems not to exist on another PC with win2000 and an AMD Athlon.
Any hints?

Martin
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread vsnijders


- Original Message -
From: Martin Schreiber [EMAIL PROTECTED]
Date: Tuesday, July 10, 2007 2:38 pm
Subject: [fpc-devel] win32 debugging broken in fixes_2_2?

 Hi,
 Every program compiled with fixes_2_2 rev. 8006 crashes
 in gdb:
 
 GNU gdb 6.6
 Copyright (C) 2006 Free Software Foundation, Inc.
 GDB is free software, covered by the GNU General Public License, 
 and you are
 welcome to change it and/or distribute copies of it under certain 
 conditions.Type show copying to see the conditions.
 There is absolutely no warranty for GDB.  Type show warranty for 
 details.This GDB was configured as i686-pc-mingw32...
 (gdb) run
 Starting program: G:\testcase\mse\console/console.exe
 Loaded symbols for C:\WINNT\system32\KERNEL32.DLL
 Loaded symbols for C:\WINNT\system32\OLEAUT32.DLL
 Loaded symbols for C:\WINNT\system32\OLE32.DLL
 Loaded symbols for C:\WINNT\system32\rpcrt4.dll
 Loaded symbols for C:\WINNT\system32\ADVAPI32.DLL
 Loaded symbols for C:\WINNT\system32\GDI32.DLL
 Loaded symbols for C:\WINNT\system32\USER32.DLL
 
 Program received signal SIGILL, Illegal instruction.
 0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
 (gdb) bt
 #0  0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
 #1  0x0040a504 in SYSTEM_init ()
 #2  0x00406114 in fpc_initializeunits ()
 #3  0x7ffdf000 in ?? ()
 #4  0x in ?? ()
 (gdb)
 
 The programs work without gdb.
 System: win2000, PII.
 The problem seems not to exist on another PC with win2000 and an 
 AMD Athlon.
 Any hints?

It has to to with SSE2 detection. AFAIK the only reliable way to detect it, is 
execute a SSE2 instruction and capture the exection which it causes if it is 
not supported.

I don't know, how it can be circumvented (except for using a newer processor).

Vincent
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Jonas Maebe


On 10 Jul 2007, at 14:38, Martin Schreiber wrote:


Every program compiled with fixes_2_2 rev. 8006 crashes
in gdb:
Program received signal SIGILL, Illegal instruction.
0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
(gdb) bt
#0  0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
#1  0x0040a504 in SYSTEM_init ()
#2  0x00406114 in fpc_initializeunits ()
#3  0x7ffdf000 in ?? ()
#4  0x in ?? ()
(gdb)

The programs work without gdb.
System: win2000, PII.
The problem seems not to exist on another PC with win2000 and an  
AMD Athlon.

Any hints?


The rtl checks on startup whether or not your cpu supports SSE. It  
does so by executing an SSE instruction, catching the illegal  
instruction exception if it occurs and if so, setting a boolean to  
false.


So just type continue in gdb to continue the program.


Jonas
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Yury Sidorov

From: Martin Schreiber [EMAIL PROTECTED]

Hi,
Every program compiled with fixes_2_2 rev. 8006 crashes
in gdb:

GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and 
you are
welcome to change it and/or distribute copies of it under certain 
conditions.

Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for 
details.

This GDB was configured as i686-pc-mingw32...
(gdb) run
Starting program: G:\testcase\mse\console/console.exe
Loaded symbols for C:\WINNT\system32\KERNEL32.DLL
Loaded symbols for C:\WINNT\system32\OLEAUT32.DLL
Loaded symbols for C:\WINNT\system32\OLE32.DLL
Loaded symbols for C:\WINNT\system32\rpcrt4.dll
Loaded symbols for C:\WINNT\system32\ADVAPI32.DLL
Loaded symbols for C:\WINNT\system32\GDI32.DLL
Loaded symbols for C:\WINNT\system32\USER32.DLL

Program received signal SIGILL, Illegal instruction.
0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
(gdb) bt
#0  0x00402091 in SYSTEM_FPC_CPUCODEINIT ()
#1  0x0040a504 in SYSTEM_init ()
#2  0x00406114 in fpc_initializeunits ()
#3  0x7ffdf000 in ?? ()
#4  0x in ?? ()
(gdb)

The programs work without gdb.
System: win2000, PII.
The problem seems not to exist on another PC with win2000 and an AMD 
Athlon.

Any hints?


If CPU have no SSE support an exception occurs, but it handled 
properly by program. If running under gdb, it catches this exception.


Maybe other way to detect SSE support exists...

Yury.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Vinzent Hoefler
On Tuesday 10 July 2007 12:40, Yury Sidorov wrote:

 Maybe other way to detect SSE support exists...

CPUID?


Vinzent.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Vinzent Hoefler
On Tuesday 10 July 2007 09:58, Vinzent Hoefler wrote:
 On Tuesday 10 July 2007 12:40, Yury Sidorov wrote:
  Maybe other way to detect SSE support exists...

 CPUID?

To be more precise, the way recommended by Intel:

To make this check, execute the CPUID instruction with an argument of 1 
in the EAX register, and check that bit 25 (SSE) and/or bit 26 (SSE2) 
are set to 1.

  -- IA32 Software Developer's Manual,
 Volume 3: System Programming Guide

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Martin Schreiber
On Tuesday 10 July 2007 14.53, [EMAIL PROTECTED] wrote:
  And what should I do in MSEide? Disable SIGILL reporting by gdb?
  How does Lazarus handle the problem?

 It does not handle it. If you handle it in MSEIDE, please let us know how
 you did it.

The IDE must check where the SIGILL is created, prevent error reporting and 
restart the program if the SIGILL is raised in the FPC SSE checking code...

Question to the FPC developers:
Is there really no other method to check for SSE support?

Martin
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Jonas Maebe


On 10 Jul 2007, at 15:11, Martin Schreiber wrote:


Question to the FPC developers:
Is there really no other method to check for SSE support?


According to the comments of Florian in the code, there is no other  
way which works everywhere.



Jonas
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] win32 debugging broken in fixes_2_2?

2007-07-10 Thread Martin Schreiber
On Tuesday 10 July 2007 15.13, Jonas Maebe wrote:
 On 10 Jul 2007, at 15:11, Martin Schreiber wrote:
  Question to the FPC developers:
  Is there really no other method to check for SSE support?

 According to the comments of Florian in the code, there is no other
 way which works everywhere.

Are there other places where SIGILL for checking purposes could be raised out 
of SYSTEM_FPC_CPUCODEINIT?
Are there other possible signals which must be handled by the IDE?

Martin
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel