Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
aa3e8d2a
Commit
aa3e8d2a
authored
Oct 12, 1992
by
James Van Artsdalen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(PRINT_REG): Undo Oct 11 change.
(DEBUG_PRINT_REG): New macro, used from print-rtl.c. From-SVN: r2408
parent
83e9c679
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
6 deletions
+39
-6
gcc/config/i386/i386.h
+39
-6
No files found.
gcc/config/i386/i386.h
View file @
aa3e8d2a
...
...
@@ -1460,11 +1460,13 @@ do { union { float f; long l;} tem; \
If CODE is 'h', pretend the reg is the `high' byte register.
If CODE is 'y', print "st(0)" instead of "st", if the reg is stack op. */
extern
char
*
hi_reg_name
[];
extern
char
*
qi_reg_name
[];
extern
char
*
qi_high_reg_name
[];
#define PRINT_REG(X, CODE, FILE) \
do { static char *hi_reg_name[] = HI_REGISTER_NAMES; \
static char *qi_reg_name[] = QI_REGISTER_NAMES; \
static char *qi_high_reg_name[] = QI_HIGH_REGISTER_NAMES; \
if (REGNO (X) == ARG_POINTER_REGNUM) abort (); \
do { if (REGNO (X) == ARG_POINTER_REGNUM) \
abort (); \
fprintf (FILE, "%s", RP); \
switch ((CODE == 'w' ? 2 \
: CODE == 'b' ? 1 \
...
...
@@ -1475,8 +1477,12 @@ do { union { float f; long l;} tem; \
{ \
case 3: \
if (STACK_TOP_P (X)) \
{ fputs ("st(0)", FILE); break; } \
case 4: case 8: \
{ \
fputs ("st(0)", FILE); \
break; \
} \
case 4: \
case 8: \
if (! FP_REG_P (X)) fputs ("e", FILE); \
case 2: \
fputs (hi_reg_name[REGNO (X)], FILE); \
...
...
@@ -1496,6 +1502,33 @@ do { union { float f; long l;} tem; \
#define PRINT_OPERAND_ADDRESS(FILE, ADDR) \
print_operand_address (FILE, ADDR)
/* Print the name of a register for based on its machine mode and number.
This macro is used to print debugging output.
This macro is different from PRINT_REG in that it may be used in
programs that are not linked with aux-output.o. */
#define DEBUG_PRINT_REG(X, CODE, FILE) \
do { static char *hi_name[] = HI_REGISTER_NAMES; \
static char *qi_name[] = QI_REGISTER_NAMES; \
fprintf (FILE, "%s", RP); \
if (REGNO (X) == ARG_POINTER_REGNUM) \
{ fputs ("argp", FILE); break; } \
if (STACK_TOP_P (X)) \
{ fputs ("st(0)", FILE); break; } \
switch (GET_MODE_SIZE (GET_MODE (X))) \
{ \
case 8: \
case 4: \
if (! FP_REG_P (X)) fputs ("e", FILE); \
case 2: \
fputs (hi_name[REGNO (X)], FILE); \
break; \
case 1: \
fputs (qi_name[REGNO (X)], FILE); \
break; \
} \
} while (0)
/* Output the prefix for an immediate operand, or for an offset operand. */
#define PRINT_IMMED_PREFIX(FILE) fputs (IP, (FILE))
#define PRINT_OFFSET_PREFIX(FILE) fputs (IP, (FILE))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment