Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* mips-tdep.c: Sign-extend pointers for n32
@ 2007-10-25 14:43 Maciej W. Rozycki
  2007-12-16 18:49 ` Daniel Jacobowitz
  0 siblings, 1 reply; 15+ messages in thread
From: Maciej W. Rozycki @ 2007-10-25 14:43 UTC (permalink / raw)
  To: gdb-patches; +Cc: David Ung, Maciej W. Rozycki

Hello,

 The change below fixes a few regressions in the GDB test suite for 
MIPS/n32 like the one below:

print (diamond.*left_base_vpmf) ()
UNPREDICTABLE: PC = 0x80020580
Quit
(gdb) FAIL: gdb.cp/member-ptr.exp: print (diamond.*left_base_vpmf) ()

 Tested for n32 using the mipsisa32-sde-elf target, with the 
mips-sim-sde64/-mips64/-EB and mips-sim-sde64/-mips64/-EL boards, fixing 6 
regressions (of 78) for the former and 3 regressions (of 74) for the 
latter.

2007-10-25  David Ung  <davidu@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend the
	pointer value if the length of the variable is less than the
	width of the register size of the ABI.

 OK to apply?

  Maciej

12741-0.diff
Index: binutils-quilt/src/gdb/mips-tdep.c
===================================================================
--- binutils-quilt.orig/src/gdb/mips-tdep.c	2007-09-21 17:19:38.000000000 +0100
+++ binutils-quilt/src/gdb/mips-tdep.c	2007-09-21 17:19:38.000000000 +0100
@@ -3032,6 +3032,10 @@
 			  || typecode == TYPE_CODE_UNION))
 		    regval <<= ((MIPS64_REGSIZE - partial_len)
 				* TARGET_CHAR_BIT);
+		  /* Sign extend the value if it is an address.  */
+		  else if (partial_len < MIPS64_REGSIZE
+			   && typecode == TYPE_CODE_PTR)
+		    regval = extract_signed_integer (val, partial_len);
 
 		  if (mips_debug)
 		    fprintf_filtered (gdb_stdlog, " - reg=%d val=%s",


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-10-25 14:43 mips-tdep.c: Sign-extend pointers for n32 Maciej W. Rozycki
@ 2007-12-16 18:49 ` Daniel Jacobowitz
  2007-12-19 15:27   ` Maciej W. Rozycki
  0 siblings, 1 reply; 15+ messages in thread
From: Daniel Jacobowitz @ 2007-12-16 18:49 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Thu, Oct 25, 2007 at 03:10:20PM +0100, Maciej W. Rozycki wrote:
> 2007-10-25  David Ung  <davidu@mips.com>
> 
> 	* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend the
> 	pointer value if the length of the variable is less than the
> 	width of the register size of the ABI.
> 
>  OK to apply?

Why just pointers?  I'm not entirely sure what's going on above in the
float case, but in the integer case this seems clearly wrong.  Zero
extension is probably "right" for trailing bits of structures but what
about negative integers?

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-16 18:49 ` Daniel Jacobowitz
@ 2007-12-19 15:27   ` Maciej W. Rozycki
  2007-12-19 15:28     ` Daniel Jacobowitz
  0 siblings, 1 reply; 15+ messages in thread
From: Maciej W. Rozycki @ 2007-12-19 15:27 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Sun, 16 Dec 2007, Daniel Jacobowitz wrote:

> Why just pointers?  I'm not entirely sure what's going on above in the
> float case, but in the integer case this seems clearly wrong.  Zero
> extension is probably "right" for trailing bits of structures but what
> about negative integers?

 You are quite right here -- I have checked the N32 ABI document and it 
says:

"32-bit integer (int) parameters are always sign-extended when passed in 
registers, whether of signed or unsigned type. [This issue does not arise 
in the o32-bit ABI.]"

It does not actually say anything about pointers beyond:

"All pointers and addresses are 32-bit objects. [Under 64, pointers and 
addresses are 64bits.]"

but I gather this is because the document was meant to specify a user mode 
ABI for programs run under IRIX only, so addresses with the bit #31 set 
were not expected to be relevant.

 I have regression-tested the following rewrite of the original patch 
using the mipsisa32-sde-elf target, with the mips-sim-sde64/-mips64/-EB 
and mips-sim-sde64/-mips64/-EL boards, with the results the same as the 
original.

2007-12-19  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend 32-bit
	pointers and integers as required by the ABI.

 OK to apply?

  Maciej

12741-0.diff
Index: binutils-quilt/src/gdb/mips-tdep.c
===================================================================
--- binutils-quilt.orig/src/gdb/mips-tdep.c	2007-12-19 15:09:31.000000000 +0000
+++ binutils-quilt/src/gdb/mips-tdep.c	2007-12-19 15:10:13.000000000 +0000
@@ -3184,8 +3184,17 @@
 	         purpose register.  */
 	      if (argreg <= MIPS_LAST_ARG_REGNUM)
 		{
-		  LONGEST regval =
-		    extract_unsigned_integer (val, partial_len);
+		  LONGEST regval;
+
+		  /* Sign extend pointers and 32-bit integers;
+		     everything else is taken as is.  */
+
+		  if (partial_len == 4 &&
+		      (typecode == TYPE_CODE_PTR
+		       || typecode == TYPE_CODE_INT))
+		    regval = extract_signed_integer (val, partial_len);
+		  else
+		    regval = extract_unsigned_integer (val, partial_len);
 
 		  /* A non-floating-point argument being passed in a
 		     general register.  If a struct or union, and if


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-19 15:27   ` Maciej W. Rozycki
@ 2007-12-19 15:28     ` Daniel Jacobowitz
  2007-12-19 16:16       ` Maciej W. Rozycki
  0 siblings, 1 reply; 15+ messages in thread
From: Daniel Jacobowitz @ 2007-12-19 15:28 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Wed, Dec 19, 2007 at 03:20:20PM +0000, Maciej W. Rozycki wrote:
>  You are quite right here -- I have checked the N32 ABI document and it 
> says:
> 
> "32-bit integer (int) parameters are always sign-extended when passed in 
> registers, whether of signed or unsigned type. [This issue does not arise 
> in the o32-bit ABI.]"

What happens to an 8-bit unsigned char?  How about an 8-bit signed
char?

>  I have regression-tested the following rewrite of the original patch 
> using the mipsisa32-sde-elf target, with the mips-sim-sde64/-mips64/-EB 
> and mips-sim-sde64/-mips64/-EL boards, with the results the same as the 
> original.

What ABI is that?  I thought none of the ELF targets used n32 or n64,
but maybe SDE is an exception.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-19 15:28     ` Daniel Jacobowitz
@ 2007-12-19 16:16       ` Maciej W. Rozycki
  2007-12-19 17:08         ` Daniel Jacobowitz
  0 siblings, 1 reply; 15+ messages in thread
From: Maciej W. Rozycki @ 2007-12-19 16:16 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Wed, 19 Dec 2007, Daniel Jacobowitz wrote:

> What happens to an 8-bit unsigned char?  How about an 8-bit signed
> char?

 Hmm, you have made me wonder...  Obviously 32-bit integer quantities are 
special -- they are always sign-extended so that 32-bit ALU operations may 
be used on them.  There is this statement in the ABI document:

"All integer parameters are promoted (that is, sign- or zero-extended to 
64-bit integers and passed in a single register). Typically, no code is 
required for the promotion."

This note about no code requirement may be misleading -- this may be true 
for the run time, because the use of "lb/lbu/lh/lhu" as appropriate would 
have had the effect of doing the correct extension when the value was 
fetched into a register originally, but here we are in a different 
position as it is GDB that is the caller.  Let me dig through the 
document...  Nothing relevant apparently found.

 But in practice it should not matter -- however you represent 8-bit and 
16-bit quantities you cannot overflow into the 64-bit data space as with a 
flip of the bit #31 the upper 32 bits follow and when a result is written 
back to memory or is otherwise finally processed (like output in a textual 
form) it has to be masked to its data width again (obviously "sb/sh" do 
this implicitly).  So I believe the change is correct as it is and the 
question is academic.  Let me know if you think otherwise.

> What ABI is that?  I thought none of the ELF targets used n32 or n64,
> but maybe SDE is an exception.

 N32, as documented in "MIPSpro N32 ABI Handbook" from SGI.  I can chase a 
link if you cannot locate the PDF.  The SDE target uses it as the default 
64-bit ABI implied by the "-mips64" switch.

  Maciej


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-19 16:16       ` Maciej W. Rozycki
@ 2007-12-19 17:08         ` Daniel Jacobowitz
  2007-12-20 16:41           ` Maciej W. Rozycki
  0 siblings, 1 reply; 15+ messages in thread
From: Daniel Jacobowitz @ 2007-12-19 17:08 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Wed, Dec 19, 2007 at 04:07:13PM +0000, Maciej W. Rozycki wrote:
>  But in practice it should not matter -- however you represent 8-bit and 
> 16-bit quantities you cannot overflow into the 64-bit data space as with a 
> flip of the bit #31 the upper 32 bits follow and when a result is written 
> back to memory or is otherwise finally processed (like output in a textual 
> form) it has to be masked to its data width again (obviously "sb/sh" do 
> this implicitly).  So I believe the change is correct as it is and the 
> question is academic.  Let me know if you think otherwise.

I happen to know otherwise.  I once wasted several days tracking down
a bug in the Linux kernel's IP checksumming implementation which
resulted in incorrectly extended values in registers; there are MIPS
parts which really do behave unpredictably when you use 32-bit
arithmetic operations on them (specifically the Broadcom SB1).
And I believe a compiler would be justified in using such instructions
on a signed char argument.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-19 17:08         ` Daniel Jacobowitz
@ 2007-12-20 16:41           ` Maciej W. Rozycki
  2007-12-20 17:07             ` Daniel Jacobowitz
  0 siblings, 1 reply; 15+ messages in thread
From: Maciej W. Rozycki @ 2007-12-20 16:41 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Wed, 19 Dec 2007, Daniel Jacobowitz wrote:

> I happen to know otherwise.  I once wasted several days tracking down
> a bug in the Linux kernel's IP checksumming implementation which
> resulted in incorrectly extended values in registers; there are MIPS
> parts which really do behave unpredictably when you use 32-bit
> arithmetic operations on them (specifically the Broadcom SB1).

 I recall the issue and the problem was broken inline assembly, which used 
64-bit operations to produce results associated with 32-bit integer types 
and register constraints.  This is a different issue and is doomed to fail 
indeed.

> And I believe a compiler would be justified in using such instructions
> on a signed char argument.

 Yes, of course -- it is actually meant to and thus will never produce 
results outside the sign-extended 32-bit range (remember that before 
extending, bits 31:16 or 31:8 as appropriate are zeroes, so after a 
zero-extension the values still fall within the signed 32-bit range).  
And most ALU operations do not care about the signedness, but there are 
two exceptions that came to my mind after I sent you the previous letter, 
specifically signed "div/mult", and GCC indeed uses signed/unsigned load 
operations for 16/8-bit types as appropriate, so even though chasing the 
relevant document that would state it explicitly seems a non-trivial task, 
I think sign-extension of such small signed integers is implied.

 Also n32 builds on compatibility with o32 and the most definite o32 
document which is: "SYSTEM V APPLICATION BINARY INTERFACE, MIPS RISC 
Processor Supplement, 3rd Edition" says:

"All integer-valued arguments are passed as 32-bit words, with signed or 
unsigned bytes and halfwords expanded (promoted) as necessary."

 Thus I have taken your suggestion into account and modified the change 
further as follows and regression tested it as previously, successfully.  
Well, I guess it actually means we do not really have a terribly good 
coverage here -- I suppose a set of test cases that would check that 
promotion is performed correctly with manual calls would be useful.

2007-12-19  David Ung  <davidu@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend
	integers and 32-bit pointers as required by the ABI.

 OK to apply?

  Maciej

12741-0.diff
Index: binutils-quilt/src/gdb/mips-tdep.c
===================================================================
--- binutils-quilt.orig/src/gdb/mips-tdep.c	2007-12-19 15:15:45.000000000 +0000
+++ binutils-quilt/src/gdb/mips-tdep.c	2007-12-20 16:13:31.000000000 +0000
@@ -3184,8 +3184,21 @@
 	         purpose register.  */
 	      if (argreg <= MIPS_LAST_ARG_REGNUM)
 		{
-		  LONGEST regval =
-		    extract_unsigned_integer (val, partial_len);
+		  LONGEST regval;
+
+		  /* Sign extend pointers, 32-bit integers and signed
+		     16-bit and 8-bit integers; everything else is taken
+		     as is.  */
+
+		  if ((partial_len == 4
+		       && (typecode == TYPE_CODE_PTR
+			   || typecode == TYPE_CODE_INT))
+		      || (partial_len < 4
+			  && typecode == TYPE_CODE_INT
+			  && !TYPE_UNSIGNED (arg_type)))
+		    regval = extract_signed_integer (val, partial_len);
+		  else
+		    regval = extract_unsigned_integer (val, partial_len);
 
 		  /* A non-floating-point argument being passed in a
 		     general register.  If a struct or union, and if


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-20 16:41           ` Maciej W. Rozycki
@ 2007-12-20 17:07             ` Daniel Jacobowitz
  2007-12-20 17:18               ` Maciej W. Rozycki
  0 siblings, 1 reply; 15+ messages in thread
From: Daniel Jacobowitz @ 2007-12-20 17:07 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Thu, Dec 20, 2007 at 04:37:31PM +0000, Maciej W. Rozycki wrote:
>  Thus I have taken your suggestion into account and modified the change 
> further as follows and regression tested it as previously, successfully.  
> Well, I guess it actually means we do not really have a terribly good 
> coverage here -- I suppose a set of test cases that would check that 
> promotion is performed correctly with manual calls would be useful.
> 
> 2007-12-19  David Ung  <davidu@mips.com>
>             Maciej W. Rozycki  <macro@mips.com>
> 
> 	* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend
> 	integers and 32-bit pointers as required by the ABI.
> 
>  OK to apply?

OK.

I think there's still a problem here, though it is somewhat endemic to
the argument passing routines:

    TYPE_CODE_ENUM,             /* Enumeration type */
    TYPE_CODE_REF,              /* C++ Reference types */
    TYPE_CODE_CHAR,             /* *real* character type */
    TYPE_CODE_BOOL,

And possibly TYPE_CODE_MEMBERPTR too... that's a signed offset,
probably 32-bit in the n32 case.  Getting this right is a real
pain.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-20 17:07             ` Daniel Jacobowitz
@ 2007-12-20 17:18               ` Maciej W. Rozycki
  2007-12-20 19:37                 ` Daniel Jacobowitz
  2007-12-21  4:36                 ` Joel Brobecker
  0 siblings, 2 replies; 15+ messages in thread
From: Maciej W. Rozycki @ 2007-12-20 17:18 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Thu, 20 Dec 2007, Daniel Jacobowitz wrote:

> I think there's still a problem here, though it is somewhat endemic to
> the argument passing routines:
> 
>     TYPE_CODE_ENUM,             /* Enumeration type */
>     TYPE_CODE_REF,              /* C++ Reference types */
>     TYPE_CODE_CHAR,             /* *real* character type */
>     TYPE_CODE_BOOL,
> 
> And possibly TYPE_CODE_MEMBERPTR too... that's a signed offset,
> probably 32-bit in the n32 case.  Getting this right is a real
> pain.

 Hmm, these are obviously C-style types and I would expect other languages 
to have their own specific ones (Ada, anyone?).  As they map somehow to 
the integer types provided by the underlying architecture, wouldn't it be 
a good idea to actually record which of the plain CPU-specific types each 
of the language types corresponds to?

 This way the mapping would only be provided in a single place -- the 
language ABI for a given architecture -- and all the generic 
target-dependent and possibly target-independent code would not have to 
iterate over all the language types, which is obviously prone to errors 
and hard to fully cover in the test suite.

  Maciej


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-20 17:18               ` Maciej W. Rozycki
@ 2007-12-20 19:37                 ` Daniel Jacobowitz
  2007-12-21  4:36                 ` Joel Brobecker
  1 sibling, 0 replies; 15+ messages in thread
From: Daniel Jacobowitz @ 2007-12-20 19:37 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: gdb-patches, David Ung, Maciej W. Rozycki

On Thu, Dec 20, 2007 at 05:07:42PM +0000, Maciej W. Rozycki wrote:
>  Hmm, these are obviously C-style types and I would expect other languages 
> to have their own specific ones (Ada, anyone?).  As they map somehow to 
> the integer types provided by the underlying architecture, wouldn't it be 
> a good idea to actually record which of the plain CPU-specific types each 
> of the language types corresponds to?

Yes, that sounds like a good solution.  I don't think we need to fix
it today, though :-)

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-20 17:18               ` Maciej W. Rozycki
  2007-12-20 19:37                 ` Daniel Jacobowitz
@ 2007-12-21  4:36                 ` Joel Brobecker
  2007-12-21 11:34                   ` Maciej W. Rozycki
  1 sibling, 1 reply; 15+ messages in thread
From: Joel Brobecker @ 2007-12-21  4:36 UTC (permalink / raw)
  To: Maciej W. Rozycki
  Cc: Daniel Jacobowitz, gdb-patches, David Ung, Maciej W. Rozycki

> > I think there's still a problem here, though it is somewhat endemic to
> > the argument passing routines:
> > 
> >     TYPE_CODE_ENUM,             /* Enumeration type */
> >     TYPE_CODE_REF,              /* C++ Reference types */
> >     TYPE_CODE_CHAR,             /* *real* character type */
> >     TYPE_CODE_BOOL,
> > 
> > And possibly TYPE_CODE_MEMBERPTR too... that's a signed offset,
> > probably 32-bit in the n32 case.  Getting this right is a real
> > pain.
> 
>  Hmm, these are obviously C-style types and I would expect other languages 
> to have their own specific ones (Ada, anyone?).

Are you asking which TYPE_CODE enumerates are specific to Ada?
I don't think there are any. I had a quick look at the current list,
and nothing stood out.

-- 
Joel


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-21  4:36                 ` Joel Brobecker
@ 2007-12-21 11:34                   ` Maciej W. Rozycki
  2007-12-21 11:51                     ` Joel Brobecker
  0 siblings, 1 reply; 15+ messages in thread
From: Maciej W. Rozycki @ 2007-12-21 11:34 UTC (permalink / raw)
  To: Joel Brobecker
  Cc: Daniel Jacobowitz, gdb-patches, David Ung, Maciej W. Rozycki

On Fri, 21 Dec 2007, Joel Brobecker wrote:

> Are you asking which TYPE_CODE enumerates are specific to Ada?

 Nope, not specifically -- just an example of a language that we support 
and which is considerably different from C (Java does not count -- it is 
close enough ;-) ).

  Maciej


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-21 11:34                   ` Maciej W. Rozycki
@ 2007-12-21 11:51                     ` Joel Brobecker
  2007-12-21 12:02                       ` Maciej W. Rozycki
  0 siblings, 1 reply; 15+ messages in thread
From: Joel Brobecker @ 2007-12-21 11:51 UTC (permalink / raw)
  To: Maciej W. Rozycki
  Cc: Daniel Jacobowitz, gdb-patches, David Ung, Maciej W. Rozycki

> Nope, not specifically -- just an example of a language that we support 
> and which is considerably different from C (Java does not count -- it is 
> close enough ;-) ).

Ada is in many ways to Pascal, and I consider them to be close to C. 
My first time in Ada, I wrote a simple C program and then ran the GNAT
compiler and followed its instructions until I got a valid Ada program
;-).

For a language that's really different to C, how about Fortran?
There's scheme as well, but I don't know how well we support it.

-- 
Joel


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-21 11:51                     ` Joel Brobecker
@ 2007-12-21 12:02                       ` Maciej W. Rozycki
  2007-12-22  5:30                         ` Joel Brobecker
  0 siblings, 1 reply; 15+ messages in thread
From: Maciej W. Rozycki @ 2007-12-21 12:02 UTC (permalink / raw)
  To: Joel Brobecker
  Cc: Daniel Jacobowitz, gdb-patches, David Ung, Maciej W. Rozycki

On Fri, 21 Dec 2007, Joel Brobecker wrote:

> Ada is in many ways to Pascal, and I consider them to be close to C. 

 Well, certainly both are procedural and thus closer to C than e.g. M4. ;)

> My first time in Ada, I wrote a simple C program and then ran the GNAT
> compiler and followed its instructions until I got a valid Ada program
> ;-).

 Good hint ;) -- I did some Ada hackery when trying to make the compiler 
work better for MIPS/Linux (any interest in that, BTW?) and it was 
somewhat tricky.

> For a language that's really different to C, how about Fortran?
> There's scheme as well, but I don't know how well we support it.

 I know neither of them well enough to make any comments.  Unfortunately I 
do not seem to see any interest in supporting languages like Lisp or 
Prolog with GCC yet. ;)

  Maciej


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: mips-tdep.c: Sign-extend pointers for n32
  2007-12-21 12:02                       ` Maciej W. Rozycki
@ 2007-12-22  5:30                         ` Joel Brobecker
  0 siblings, 0 replies; 15+ messages in thread
From: Joel Brobecker @ 2007-12-22  5:30 UTC (permalink / raw)
  To: Maciej W. Rozycki
  Cc: Daniel Jacobowitz, gdb-patches, David Ung, Maciej W. Rozycki

> > My first time in Ada, I wrote a simple C program and then ran the GNAT
> > compiler and followed its instructions until I got a valid Ada program
> > ;-).
> 
>  Good hint ;) -- I did some Ada hackery when trying to make the compiler 
> work better for MIPS/Linux (any interest in that, BTW?) and it was 
> somewhat tricky.

I'm already having enough trouble trying to keep up on mips-irix,
but thank you :). If it's Ada-specific questions that you have,
don't hesitate to ask me, though.

> > For a language that's really different to C, how about Fortran?
> > There's scheme as well, but I don't know how well we support it.
> 
>  I know neither of them well enough to make any comments.  Unfortunately I 
> do not seem to see any interest in supporting languages like Lisp or 
> Prolog with GCC yet. ;)

:-). I just had a look at Fortran, and although it's harder to read
when you're not used to their style, it looks pretty close to C or
Ada as well.

-- 
Joel


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2007-12-22  5:22 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-25 14:43 mips-tdep.c: Sign-extend pointers for n32 Maciej W. Rozycki
2007-12-16 18:49 ` Daniel Jacobowitz
2007-12-19 15:27   ` Maciej W. Rozycki
2007-12-19 15:28     ` Daniel Jacobowitz
2007-12-19 16:16       ` Maciej W. Rozycki
2007-12-19 17:08         ` Daniel Jacobowitz
2007-12-20 16:41           ` Maciej W. Rozycki
2007-12-20 17:07             ` Daniel Jacobowitz
2007-12-20 17:18               ` Maciej W. Rozycki
2007-12-20 19:37                 ` Daniel Jacobowitz
2007-12-21  4:36                 ` Joel Brobecker
2007-12-21 11:34                   ` Maciej W. Rozycki
2007-12-21 11:51                     ` Joel Brobecker
2007-12-21 12:02                       ` Maciej W. Rozycki
2007-12-22  5:30                         ` Joel Brobecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox