This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] h8300 port: Replace H8/S with H8S.
- From: Kazu Hirata <kazu at cs dot umass dot edu>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 13 Sep 2002 16:35:15 -0400 (EDT)
- Subject: [patch] h8300 port: Replace H8/S with H8S.
Hi,
Attached is a patch to replace H8/S with H8S. Committed as obvious.
Kazu Hirata
2002-09-13 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/fixunssfsi.c: Replace H8/S with H8S.
* config/h8300/h8300.c: Likewise.
* config/h8300/h8300.h: Likewise.
* config/h8300/h8300.md: Likewise.
* doc/invoke.texi: Likewise.
Index: fixunssfsi.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/fixunssfsi.c,v
retrieving revision 1.2
diff -u -r1.2 fixunssfsi.c
--- fixunssfsi.c 2 Jan 2002 07:57:15 -0000 1.2
+++ fixunssfsi.c 13 Sep 2002 20:31:33 -0000
@@ -30,7 +30,7 @@
/* The libgcc2.c implementation gets confused by our type setup and creates
a directly recursive call, so we do our own implementation. For
- the H8/300, that's in lib1funcs.asm, for H8/300H and H8/S, it's here. */
+ the H8/300, that's in lib1funcs.asm, for H8/300H and H8S, it's here. */
#ifndef __H8300__
long
Index: h8300.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/h8300.c,v
retrieving revision 1.145
diff -u -r1.145 h8300.c
--- h8300.c 13 Sep 2002 20:12:25 -0000 1.145
+++ h8300.c 13 Sep 2002 20:31:36 -0000
@@ -301,7 +301,7 @@
}
else
{
- /* For this we treat the H8/300H and H8/S the same. */
+ /* For this we treat the H8/300H and H8S the same. */
cpu_type = (int) CPU_H8300H;
h8_reg_names = names_extended;
}
@@ -392,7 +392,7 @@
const char *op;
unsigned int size;
{
- /* On the H8/300H and H8/S, for sizes <= 8 bytes, it is as good or
+ /* On the H8/300H and H8S, for sizes <= 8 bytes, it is as good or
better to use adds/subs insns rather than add.l/sub.l with an
immediate value.
@@ -2036,7 +2036,7 @@
We devote a fair bit of code to getting efficient shifts since we
can only shift one bit at a time on the H8/300 and H8/300H and only
- one or two bits at a time on the H8/S.
+ one or two bits at a time on the H8S.
All shift code falls into one of the following ways of
implementation:
@@ -2055,7 +2055,7 @@
16. This case also includes other oddballs that are not worth
explaning here.
- o SHIFT_LOOP: Emit a loop using one (or two on H8/S) bit shifts.
+ o SHIFT_LOOP: Emit a loop using one (or two on H8S) bit shifts.
Here are some thoughts on what the absolutely positively best code
is. "Best" here means some rational trade-off between code size
@@ -2120,15 +2120,15 @@
do 24 bit shift, inline rest
31 - shll, subx byte 0, sign extend byte 0, sign extend word 0
- H8/S QImode shifts
+ H8S QImode shifts
7 - ASHIFTRT: shll, subx (propagate carry bit to all bits)
- H8/S HImode shifts
+ H8S HImode shifts
8 - move byte, zero (ASHIFT | LSHIFTRT) or sign extend other (ASHIFTRT)
9-12 - do shift by 8, inline remaining shifts
15 - ASHIFTRT: shll, subx, set other byte
- H8/S SImode shifts
+ H8S SImode shifts
(These are complicated by the fact that we don't have byte level access to
the top word.)
A word is: bytes 3,2,1,0 (msb -> lsb), word 1,0 (msw -> lsw)
@@ -2812,7 +2812,7 @@
abort ();
}
- /* On H8/300H and H8/S, count == 8 uses the scratch register. */
+ /* On H8/300H and H8S, count == 8 uses the scratch register. */
return (a == SHIFT_LOOP || lr == SHIFT_LOOP || ar == SHIFT_LOOP
|| (!TARGET_H8300 && mode == SImode && count == 8));
}
@@ -3304,7 +3304,7 @@
break;
case SImode:
- /* This code works on the H8/300H and H8/S. */
+ /* This code works on the H8/300H and H8S. */
insn_buf = "xor.w\t%e0,%f0\n\txor.w\t%f0,%e0\n\txor.w\t%e0,%f0";
output_asm_insn (insn_buf, operands);
break;
@@ -3728,7 +3728,7 @@
}
else
{
- /* On the H8/300H and H8/S, we subtract the difference
+ /* On the H8/300H and H8S, we subtract the difference
between the actual length and the longest one, which is
@(d:24,ERs). */
@@ -3837,7 +3837,7 @@
states += 6;
}
- /* We use 2-bit rotatations on the H8/S. */
+ /* We use 2-bit rotatations on the H8S. */
if (TARGET_H8300S)
amount = amount / 2 + amount % 2;
Index: h8300.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/h8300.h,v
retrieving revision 1.102
diff -u -r1.102 h8300.h
--- h8300.h 13 Sep 2002 15:42:47 -0000 1.102
+++ h8300.h 13 Sep 2002 20:31:38 -0000
@@ -115,10 +115,10 @@
An empty string NAME is used to identify the default VALUE. */
#define TARGET_SWITCHES \
- { {"s", 1, N_("Generate H8/S code")}, \
- {"no-s", -1, N_("Do not generate H8/S code")}, \
- {"s2600", 2, N_("Generate H8/S2600 code")}, \
- {"no-s2600", -2, N_("Do not generate H8/S2600 code")}, \
+ { {"s", 1, N_("Generate H8S code")}, \
+ {"no-s", -1, N_("Do not generate H8S code")}, \
+ {"s2600", 2, N_("Generate H8S/2600 code")}, \
+ {"no-s2600", -2, N_("Do not generate H8S/2600 code")}, \
{"int32", 8, N_("Make integers 32 bits wide")}, \
{"addresses", 64, NULL}, \
{"quickcall", 128, \
@@ -228,7 +228,7 @@
#define PCC_BITFIELD_TYPE_MATTERS 0
/* No data type wants to be aligned rounder than this.
- 32 bit values are aligned as such on the H8/300H and H8/S for speed. */
+ 32 bit values are aligned as such on the H8/300H and H8S for speed. */
#define BIGGEST_ALIGNMENT \
(((TARGET_H8300H || TARGET_H8300S) && ! TARGET_ALIGN_300) ? 32 : 16)
@@ -835,7 +835,7 @@
&& (INTVAL (X) & 0x0000FFFF) <= 0xffff)))
/* Nonzero if X is a constant address suitable as an 16-bit absolute
- on H8/300H and H8/S. */
+ on H8/300H and H8S. */
#define TINY_CONSTANT_ADDRESS_P(X) \
((GET_CODE (X) == CONST_INT) \
@@ -851,7 +851,7 @@
i.e. a register, register indirect, or the eightbit memory region
(a SYMBOL_REF with an SYMBOL_REF_FLAG set).
- On the H8/S 'U' can also be a 16bit or 32bit absolute. */
+ On the H8S 'U' can also be a 16bit or 32bit absolute. */
#define OK_FOR_U(OP) \
((GET_CODE (OP) == REG && REG_OK_FOR_BASE_P (OP)) \
|| (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == REG \
Index: h8300.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/h8300.md,v
retrieving revision 1.92
diff -u -r1.92 h8300.md
--- h8300.md 12 Sep 2002 17:15:30 -0000 1.92
+++ h8300.md 13 Sep 2002 20:31:39 -0000
@@ -28,7 +28,7 @@
;; "worst case" and then be adjusted to their correct values by
;; h8300_adjust_insn_length.
-;; On the H8/300H and H8/S, adds/subs operate on the 32bit "er"
+;; On the H8/300H and H8S, adds/subs operate on the 32bit "er"
;; registers. Right now GCC doesn't expose the "e" half to the
;; compiler, so using add/subs for addhi and subhi is safe. Long
;; term, we want to expose the "e" half to the compiler (gives us 8
@@ -1529,7 +1529,7 @@
;; Call subroutine with no return value.
-;; ??? Even though we use HImode here, this works on the H8/300H and H8/S.
+;; ??? Even though we use HImode here, this works on the H8/300H and H8S.
(define_insn "call"
[(call (match_operand:QI 0 "call_insn_operand" "or")
@@ -1552,7 +1552,7 @@
;; Call subroutine, returning value in operand 0
;; (which must be a hard register).
-;; ??? Even though we use HImode here, this works on the H8/300H and H8/S.
+;; ??? Even though we use HImode here, this works on the H8/300H and H8S.
(define_insn "call_value"
[(set (match_operand 0 "" "=r")