* [PATCH,SH] Add SH2A new instructions 4/6
@ 2008-03-19 6:56 Naveen H.S.
2008-03-20 1:38 ` Kaz Kojima
0 siblings, 1 reply; 7+ messages in thread
From: Naveen H.S. @ 2008-03-19 6:56 UTC (permalink / raw)
To: gcc-patches; +Cc: Kaz Kojima, Prafulla Thakare
[-- Attachment #1: Type: text/plain, Size: 1101 bytes --]
Hi Kaz,
>> Re-post the revised patch when the trunk returns to stage1.
Please find the revised patch attached "sh2a4.patch" as per the
suggestions. Thanks a lot for the valuable guidance.
>> Don't forget to describe how the patch is tested then.
The patch was tested using the C and C++ testsuite for all the SH2A
combinations.
2008-03-19 Naveen.H.S <naveen.hs@kpitcummins.com>
* config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if
possible.
* config/sh/sh.md (xorsi_nott, xorsi3_movrt, nott, movrt): New
insns.
* gcc.target/sh/sh2a-movrt.c: New test.
Regards,
Naveen.H.S.
KPIT Cummins Infosystems Ltd,
Pune (INDIA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Free download of GNU based tool-chains for Renesas' SH, H8, R8C, M16C
and M32C Series. The following site also offers free technical support
to its users. Visit http://www.kpitgnutools.com for details.
Latest versions of KPIT GNU tools were released on February 4, 2008.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[-- Attachment #2: sh2a4.patch --]
[-- Type: application/octet-stream, Size: 2660 bytes --]
--- /gcc/config/sh/sh.c 2008-03-18 10:34:57.000000000 +0530
+++ /gcc/config/sh/sh.c 2008-03-18 10:36:48.000000000 +0530
@@ -10590,6 +10590,9 @@ sh_expand_t_scc (enum rtx_code code, rtx
val = INTVAL (sh_compare_op1);
if ((code == EQ && val == 1) || (code == NE && val == 0))
emit_insn (gen_movt (result));
+ else if (TARGET_SH2A && ((code == EQ && val == 0)
+ || (code == NE && val == 1)))
+ emit_insn (gen_movrt (result));
else if ((code == EQ && val == 0) || (code == NE && val == 1))
{
emit_insn (gen_rtx_CLOBBER (VOIDmode, result));
--- /gcc/config/sh/sh.md 2008-03-18 10:36:41.000000000 +0530
+++ /gcc/config/sh/sh.md 2008-03-18 10:36:48.000000000 +0530
@@ -3326,6 +3326,24 @@ label:
xori %1, %2, %0"
[(set_attr "type" "arith_media")])
+;; Invert the T bit.
+(define_insn "xorsi_nott"
+ [(set (reg:SI T_REG)
+ (xor:SI (reg:SI T_REG)
+ (const_int 1)))]
+ "TARGET_SH2A"
+ "nott"
+ [(set_attr "type" "arith")])
+
+;; Store the complements of the T bit in a register.
+(define_insn "xorsi3_movrt"
+ [(set (match_operand:SI 0 "arith_reg_dest" "=r")
+ (xor:SI (reg:SI T_REG)
+ (const_int 1)))]
+ "TARGET_SH2A"
+ "movrt\\t%0"
+ [(set_attr "type" "arith")])
+
(define_insn "xordi3"
[(set (match_operand:DI 0 "arith_reg_dest" "=r,r")
(xor:DI (match_operand:DI 1 "arith_reg_operand" "%r,r")
@@ -9545,6 +9563,26 @@ mov.l\\t1f,r0\\n\\
"movt %0"
[(set_attr "type" "arith")])
+;; complements the T bit
+(define_insn "nott"
+ [(set (reg:SI T_REG)
+ (if_then_else (eq:SI (reg:SI T_REG) (const_int 0))
+ (const_int 1)
+ (const_int 0)))]
+ "TARGET_SH2A"
+ "nott"
+ [(set_attr "type" "arith")])
+
+;; complements the T bit and stores the result in a register
+(define_insn "movrt"
+ [(set (match_operand:SI 0 "arith_reg_dest" "=r")
+ (if_then_else (eq:SI (reg:SI T_REG) (const_int 0))
+ (const_int 1)
+ (const_int 0)))]
+ "TARGET_SH2A"
+ "movrt\\t%0"
+ [(set_attr "type" "arith")])
+
(define_expand "seq"
[(set (match_operand:SI 0 "arith_reg_dest" "")
(match_dup 1))]
--- /gcc/testsuite/gcc.target/sh/sh2a-movrt.c 1970-01-01 05:30:00.000000000 +0530
+++ /gcc/testsuite/gcc.target/sh/sh2a-movrt.c 2008-03-18 10:37:51.000000000 +0530
@@ -0,0 +1,16 @@
+/* Testcase to check generation of a SH2A specific instruction for
+ 'MOVRT Rn'. */
+/* { dg-do assemble {target sh*-*-*}} */
+/* { dg-options "-O1" } */
+/* { dg-skip-if "" { "sh*-*-*" } "*" "-m2a -m2a-nofpu -m2a-single -m2a-single-only" } */
+/* { dg-final { scan-assembler "movrt"} } */
+
+
+int
+foo (void)
+{
+ int a, b, g, stop;
+ if (stop = ((a + b) % 2 != g));
+ return stop;
+}
+
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH,SH] Add SH2A new instructions 4/6
2008-03-19 6:56 [PATCH,SH] Add SH2A new instructions 4/6 Naveen H.S.
@ 2008-03-20 1:38 ` Kaz Kojima
2008-03-24 13:08 ` Naveen H.S.
0 siblings, 1 reply; 7+ messages in thread
From: Kaz Kojima @ 2008-03-20 1:38 UTC (permalink / raw)
To: naveen.hs; +Cc: gcc-patches, Prafulla.Thakare
"Naveen H.S." <naveen.hs@kpitcummins.com> wrote:
> 2008-03-19 Naveen.H.S <naveen.hs@kpitcummins.com>
>
> * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if
> possible.
> * config/sh/sh.md (xorsi_nott, xorsi3_movrt, nott, movrt): New
> insns.
>
> * gcc.target/sh/sh2a-movrt.c: New test.
Could you add the testcase for nott?
http://gcc.gnu.org/ml/gcc-patches/2007-10/msg01774.html
Regards,
kaz
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH,SH] Add SH2A new instructions 4/6
2008-03-20 1:38 ` Kaz Kojima
@ 2008-03-24 13:08 ` Naveen H.S.
2008-03-24 14:15 ` Kaz Kojima
0 siblings, 1 reply; 7+ messages in thread
From: Naveen H.S. @ 2008-03-24 13:08 UTC (permalink / raw)
To: Kaz Kojima; +Cc: gcc-patches, Prafulla Thakare
Hi Kaz,
>> Could you add the testcase for nott?
MOVRT is the optimized form of NOTT as it inverts the T bit and also
stores the result in the specified register. Hence, we could not get
any testcase that only inverts the T bit.
Regards,
Naveen.H.S.
KPIT Cummins Infosystems Ltd,
Pune (INDIA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Free download of GNU based tool-chains for Renesas' SH, H8, R8C, M16C
and M32C Series. The following site also offers free technical support
to its users. Visit http://www.kpitgnutools.com for details.
Latest versions of KPIT GNU tools were released on February 4, 2008.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH,SH] Add SH2A new instructions 4/6
2008-03-24 13:08 ` Naveen H.S.
@ 2008-03-24 14:15 ` Kaz Kojima
2008-03-25 12:31 ` Naveen H.S.
0 siblings, 1 reply; 7+ messages in thread
From: Kaz Kojima @ 2008-03-24 14:15 UTC (permalink / raw)
To: naveen.hs; +Cc: gcc-patches, Prafulla.Thakare
"Naveen H.S." <naveen.hs@kpitcummins.com> wrote:
>>> Could you add the testcase for nott?
>
> MOVRT is the optimized form of NOTT as it inverts the T bit and also
> stores the result in the specified register. Hence, we could not get
> any testcase that only inverts the T bit.
Then why you add "nott" and "xorsi_nott" insn definitions?
Regards,
kaz
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH,SH] Add SH2A new instructions 4/6
2008-03-24 14:15 ` Kaz Kojima
@ 2008-03-25 12:31 ` Naveen H.S.
0 siblings, 0 replies; 7+ messages in thread
From: Naveen H.S. @ 2008-03-25 12:31 UTC (permalink / raw)
To: Kaz Kojima; +Cc: gcc-patches, Prafulla Thakare
[-- Attachment #1: Type: text/plain, Size: 938 bytes --]
Hi Kaz,
>> Then why you add "nott" and "xorsi_nott" insn definitions?
Please find attached the modified patch "sh2a4.patch" that does not
include the "nott" and "xorsi_nott" insn definitions.
2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
* config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if
possible.
* config/sh/sh.md (xorsi3_movrt, movrt): New insns.
* gcc.target/sh/sh2a-movrt.c: New test.
Regards,
Naveen.H.S.
KPIT Cummins Infosystems Ltd,
Pune (INDIA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Free download of GNU based tool-chains for Renesas' SH, H8, R8C, M16C
and M32C Series. The following site also offers free technical support
to its users. Visit http://www.kpitgnutools.com for details.
Latest versions of KPIT GNU tools were released on February 4, 2008.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[-- Attachment #2: sh2a4.patch --]
[-- Type: application/octet-stream, Size: 2238 bytes --]
--- /gcc/config/sh/sh.c 2008-03-25 14:36:14.000000000 +0530
+++ /gcc/config/sh/sh.c 2008-03-25 14:37:25.000000000 +0530
@@ -10591,6 +10591,9 @@ sh_expand_t_scc (enum rtx_code code, rtx
val = INTVAL (sh_compare_op1);
if ((code == EQ && val == 1) || (code == NE && val == 0))
emit_insn (gen_movt (result));
+ else if (TARGET_SH2A && ((code == EQ && val == 0)
+ || (code == NE && val == 1)))
+ emit_insn (gen_movrt (result));
else if ((code == EQ && val == 0) || (code == NE && val == 1))
{
emit_insn (gen_rtx_CLOBBER (VOIDmode, result));
--- /gcc/config/sh/sh.md 2008-03-25 14:36:51.000000000 +0530
+++ /gcc/config/sh/sh.md 2008-03-25 14:38:04.000000000 +0530
@@ -3326,6 +3326,15 @@ label:
xori %1, %2, %0"
[(set_attr "type" "arith_media")])
+;; Store the complements of the T bit in a register.
+(define_insn "xorsi3_movrt"
+ [(set (match_operand:SI 0 "arith_reg_dest" "=r")
+ (xor:SI (reg:SI T_REG)
+ (const_int 1)))]
+ "TARGET_SH2A"
+ "movrt\\t%0"
+ [(set_attr "type" "arith")])
+
(define_insn "xordi3"
[(set (match_operand:DI 0 "arith_reg_dest" "=r,r")
(xor:DI (match_operand:DI 1 "arith_reg_operand" "%r,r")
@@ -9545,6 +9554,16 @@ mov.l\\t1f,r0\\n\\
"movt %0"
[(set_attr "type" "arith")])
+;; complements the T bit and stores the result in a register
+(define_insn "movrt"
+ [(set (match_operand:SI 0 "arith_reg_dest" "=r")
+ (if_then_else (eq:SI (reg:SI T_REG) (const_int 0))
+ (const_int 1)
+ (const_int 0)))]
+ "TARGET_SH2A"
+ "movrt\\t%0"
+ [(set_attr "type" "arith")])
+
(define_expand "seq"
[(set (match_operand:SI 0 "arith_reg_dest" "")
(match_dup 1))]
--- /gcc/testsuite/gcc.target/sh/sh2a-movrt.c 1970-01-01 05:30:00.000000000 +0530
+++ /gcc/testsuite/gcc.target/sh/sh2a-movrt.c 2008-03-25 14:37:25.000000000 +0530
@@ -0,0 +1,16 @@
+/* Testcase to check generation of a SH2A specific instruction for
+ 'MOVRT Rn'. */
+/* { dg-do assemble {target sh*-*-*}} */
+/* { dg-options "-O1" } */
+/* { dg-skip-if "" { "sh*-*-*" } "*" "-m2a -m2a-nofpu -m2a-single -m2a-single-only" } */
+/* { dg-final { scan-assembler "movrt"} } */
+
+
+int
+foo (void)
+{
+ int a, b, g, stop;
+ if (stop = ((a + b) % 2 != g));
+ return stop;
+}
+
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH,SH] Add SH2A new instructions 4/6
2007-10-25 13:13 Naveen H.S.
@ 2007-10-30 1:33 ` Kaz Kojima
0 siblings, 0 replies; 7+ messages in thread
From: Kaz Kojima @ 2007-10-30 1:33 UTC (permalink / raw)
To: naveen.hs; +Cc: gcc-patches, Anil.Paranjape, Prafulla.Thakare
"Naveen H.S." <naveen.hs@kpitcummins.com> wrote:
> Please find attached the modified patch "sh2a4.patch". This patch
> implements new instructions NOTT and MOVRT for SH2A target.
Looks fine, except for a few problems about coding standard
and the missing testcase for nott.
Re-post the revised patch when the trunk returns to stage1.
Don't forget to describe how the patch is tested then.
> --- gcc-4.3-20070921/gcc/config/sh/sh.c 2007-10-24 12:09:31.000000000 +0530
> +++ tars/gcc-4.3-20070921/gcc/config/sh/sh.c 2007-10-24 12:14:27.000000000 +0530
> @@ -10590,6 +10590,11 @@ sh_expand_t_scc (enum rtx_code code, rtx
> val = INTVAL (sh_compare_op1);
> if ((code == EQ && val == 1) || (code == NE && val == 0))
> emit_insn (gen_movt (result));
> + else if (TARGET_SH2A && ((code == EQ && val == 0)
> + || (code == NE && val == 1)))
> + {
> + emit_insn (gen_movrt (result));
> + }
We don't use braces in this case.
> --- gcc-4.3-20070921/gcc/config/sh/sh.md 2007-10-24 12:14:16.000000000 +0530
> +++ tars/gcc-4.3-20070921/gcc/config/sh/sh.md 2007-10-24 12:15:34.000000000 +0530
> @@ -3320,6 +3320,24 @@ label:
> xori %1, %2, %0"
> [(set_attr "type" "arith_media")])
>
> +;; complements the T bit
This comment should be an English sentence like
;; Invert the T bit.
+(define_insn "xorsi_nott"
+ [(set (reg:SI T_REG)
+ (xor:SI (reg:SI T_REG)
+ (const_int 1)))]
^^^^^^^^
Use a tab.
> +;; complements the T bit and stores the result in a register
;; Store the complements of the T bit in a register.
> +(define_insn "xorsi3_movrt"
> + [(set (match_operand:SI 0 "arith_reg_dest" "=r")
> + (xor:SI (reg:SI T_REG)
> + (const_int 1)))]
^^^^^^^^
Use a tab.
> @@ -9535,6 +9553,26 @@ mov.l\\t1f,r0\\n\\
> "movt %0"
> [(set_attr "type" "arith")])
>
> +;; complements the T bit
Same as above
> +;; complements the T bit and stores the result in a register
and here.
> --- gcc-4.3-20070921/gcc/testsuite/gcc.target/sh/sh2a-movrt.c 1970-01-01 05:30:00.000000000 +0530
> +++ tars/gcc-4.3-20070921/gcc/testsuite/gcc.target/sh/sh2a-movrt.c 2007-10-24 12:16:53.000000000 +0530
> @@ -0,0 +1,18 @@
> +/* Testcase to check generation of a SH2A specific instruction for
> + "MOVRT Rn" */
Missing period.
> +/* { dg-skip-if "" { "sh*-*-*" } "*" "-m2a -m2a-nofpu -m2a-single
> + -m2a-single-only" } */
A single line would be safer.
> 2007-10-25 Naveen.H.S naveen.hs@kpitcummins.com
>
> * config/sh/sh.c (sh_expand_t_scc): Generate MOVRT for a
> specific
> condition for SH2A target.
> * config/sh/sh.md : xorsi_nott, xorsi3_movrt, nott, movrt : New.
The style of this entry is wrong. Should be
200z-xx-yy Naveen.H.S <naveen.hs@kpitcummins.com>
* config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
* config/sh/sh.md (xorsi_nott, xorsi3_movrt, nott, movrt): New insns.
New testcase requires an entry in gcc/testsuite/ChangeLog.
Regards,
kaz
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH,SH] Add SH2A new instructions 4/6
@ 2007-10-25 13:13 Naveen H.S.
2007-10-30 1:33 ` Kaz Kojima
0 siblings, 1 reply; 7+ messages in thread
From: Naveen H.S. @ 2007-10-25 13:13 UTC (permalink / raw)
To: Kaz Kojima; +Cc: gcc-patches, Anil Paranjape, Prafulla Thakare
[-- Attachment #1: Type: text/plain, Size: 876 bytes --]
Hi,
Please find attached the modified patch "sh2a4.patch". This patch
implements
new instructions NOTT and MOVRT for SH2A target.
ChangeLog
2007-10-25 Naveen.H.S naveen.hs@kpitcummins.com
* config/sh/sh.c (sh_expand_t_scc): Generate MOVRT for a
specific
condition for SH2A target.
* config/sh/sh.md : xorsi_nott, xorsi3_movrt, nott, movrt : New.
Regards,
Naveen.H.S.
KPIT Cummins Infosystems Ltd,
Pune (INDIA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Free download of GNU based tool-chains for Renesas' SH, H8, R8C, M16C
and M32C Series. The following site also offers free technical support
to its users. Visit http://www.kpitgnutools.com for details.
Latest versions of KPIT GNU tools were released on October 1, 2007.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[-- Attachment #2: sh2a4.patch --]
[-- Type: application/octet-stream, Size: 3153 bytes --]
diff -upr gcc-4.3-20070921/gcc/config/sh/sh.c tars/gcc-4.3-20070921/gcc/config/sh/sh.c
--- gcc-4.3-20070921/gcc/config/sh/sh.c 2007-10-24 12:09:31.000000000 +0530
+++ tars/gcc-4.3-20070921/gcc/config/sh/sh.c 2007-10-24 12:14:27.000000000 +0530
@@ -10590,6 +10590,11 @@ sh_expand_t_scc (enum rtx_code code, rtx
val = INTVAL (sh_compare_op1);
if ((code == EQ && val == 1) || (code == NE && val == 0))
emit_insn (gen_movt (result));
+ else if (TARGET_SH2A && ((code == EQ && val == 0)
+ || (code == NE && val == 1)))
+ {
+ emit_insn (gen_movrt (result));
+ }
else if ((code == EQ && val == 0) || (code == NE && val == 1))
{
emit_insn (gen_rtx_CLOBBER (VOIDmode, result));
diff -upr gcc-4.3-20070921/gcc/config/sh/sh.md tars/gcc-4.3-20070921/gcc/config/sh/sh.md
--- gcc-4.3-20070921/gcc/config/sh/sh.md 2007-10-24 12:14:16.000000000 +0530
+++ tars/gcc-4.3-20070921/gcc/config/sh/sh.md 2007-10-24 12:15:34.000000000 +0530
@@ -3320,6 +3320,24 @@ label:
xori %1, %2, %0"
[(set_attr "type" "arith_media")])
+;; complements the T bit
+(define_insn "xorsi_nott"
+ [(set (reg:SI T_REG)
+ (xor:SI (reg:SI T_REG)
+ (const_int 1)))]
+ "TARGET_SH2A"
+ "nott"
+ [(set_attr "type" "arith")])
+
+;; complements the T bit and stores the result in a register
+(define_insn "xorsi3_movrt"
+ [(set (match_operand:SI 0 "arith_reg_dest" "=r")
+ (xor:SI (reg:SI T_REG)
+ (const_int 1)))]
+ "TARGET_SH2A"
+ "movrt\\t%0"
+ [(set_attr "type" "arith")])
+
(define_insn "xordi3"
[(set (match_operand:DI 0 "arith_reg_dest" "=r,r")
(xor:DI (match_operand:DI 1 "arith_reg_operand" "%r,r")
@@ -9535,6 +9553,26 @@ mov.l\\t1f,r0\\n\\
"movt %0"
[(set_attr "type" "arith")])
+;; complements the T bit
+(define_insn "nott"
+ [(set (reg:SI T_REG)
+ (if_then_else (eq:SI (reg:SI T_REG) (const_int 0))
+ (const_int 1)
+ (const_int 0)))]
+ "TARGET_SH2A"
+ "nott"
+ [(set_attr "type" "arith")])
+
+;; complements the T bit and stores the result in a register
+(define_insn "movrt"
+ [(set (match_operand:SI 0 "arith_reg_dest" "=r")
+ (if_then_else (eq:SI (reg:SI T_REG) (const_int 0))
+ (const_int 1)
+ (const_int 0)))]
+ "TARGET_SH2A"
+ "movrt\\t%0"
+ [(set_attr "type" "arith")])
+
(define_expand "seq"
[(set (match_operand:SI 0 "arith_reg_dest" "")
(match_dup 1))]
diff -uprN gcc-4.3-20070921/gcc/testsuite/gcc.target/sh/sh2a-movrt.c tars/gcc-4.3-20070921/gcc/testsuite/gcc.target/sh/sh2a-movrt.c
--- gcc-4.3-20070921/gcc/testsuite/gcc.target/sh/sh2a-movrt.c 1970-01-01 05:30:00.000000000 +0530
+++ tars/gcc-4.3-20070921/gcc/testsuite/gcc.target/sh/sh2a-movrt.c 2007-10-24 12:16:53.000000000 +0530
@@ -0,0 +1,18 @@
+/* Testcase to check generation of a SH2A specific instruction for
+ "MOVRT Rn" */
+
+/* { dg-do assemble {target sh*-*-*}} */
+/* { dg-options "-O1" } */
+/* { dg-skip-if "" { "sh*-*-*" } "*" "-m2a -m2a-nofpu -m2a-single
+ -m2a-single-only" } */
+/* { dg-final { scan-assembler "movrt"} } */
+
+
+int
+foo (void)
+{
+ int a, b, g, stop;
+ if (stop = ((a + b) % 2 != g));
+ return stop;
+}
+
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-03-25 11:41 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-19 6:56 [PATCH,SH] Add SH2A new instructions 4/6 Naveen H.S.
2008-03-20 1:38 ` Kaz Kojima
2008-03-24 13:08 ` Naveen H.S.
2008-03-24 14:15 ` Kaz Kojima
2008-03-25 12:31 ` Naveen H.S.
-- strict thread matches above, loose matches on Subject: below --
2007-10-25 13:13 Naveen H.S.
2007-10-30 1:33 ` Kaz Kojima
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).