|
Lines 243-248
Link Here
|
| 243 |
extern const char *alpha_fptm_string; /* For -mfp-trap-mode=[n|u|su|sui] */ |
243 |
extern const char *alpha_fptm_string; /* For -mfp-trap-mode=[n|u|su|sui] */ |
| 244 |
extern const char *alpha_tp_string; /* For -mtrap-precision=[p|f|i] */ |
244 |
extern const char *alpha_tp_string; /* For -mtrap-precision=[p|f|i] */ |
| 245 |
extern const char *alpha_mlat_string; /* For -mmemory-latency= */ |
245 |
extern const char *alpha_mlat_string; /* For -mmemory-latency= */ |
|
|
246 |
extern const char *alpha_align_loops_string; /* For -malign-loops= */ |
| 247 |
extern const char *alpha_align_jumps_string; /* For -malign-jumps= */ |
| 248 |
extern const char *alpha_align_funcs_string; /* For -malign-functions= */ |
| 246 |
|
249 |
|
| 247 |
#define TARGET_OPTIONS \ |
250 |
#define TARGET_OPTIONS \ |
| 248 |
{ \ |
251 |
{ \ |
|
Lines 256-261
Link Here
|
| 256 |
"Control the precision given to fp exceptions"}, \ |
259 |
"Control the precision given to fp exceptions"}, \ |
| 257 |
{"memory-latency=", &alpha_mlat_string, \ |
260 |
{"memory-latency=", &alpha_mlat_string, \ |
| 258 |
"Tune expected memory latency"}, \ |
261 |
"Tune expected memory latency"}, \ |
|
|
262 |
{ "align-loops=", &alpha_align_loops_string, \ |
| 263 |
"Loop code aligned to this power of 2" }, \ |
| 264 |
{ "align-jumps=", &alpha_align_jumps_string, \ |
| 265 |
"Jump targets are aligned to this power of 2" }, \ |
| 266 |
{ "align-functions=", &alpha_align_funcs_string, \ |
| 267 |
"Function starts are aligned to this power of 2" }, \ |
| 259 |
} |
268 |
} |
| 260 |
|
269 |
|
| 261 |
/* Attempt to describe CPU characteristics to the preprocessor. */ |
270 |
/* Attempt to describe CPU characteristics to the preprocessor. */ |
|
Lines 475-481
Link Here
|
| 475 |
#define STACK_BOUNDARY 64 |
484 |
#define STACK_BOUNDARY 64 |
| 476 |
|
485 |
|
| 477 |
/* Allocation boundary (in *bits*) for the code of a function. */ |
486 |
/* Allocation boundary (in *bits*) for the code of a function. */ |
| 478 |
#define FUNCTION_BOUNDARY 256 |
487 |
extern int alpha_align_funcs; /* power of two alignment for functions */ |
|
|
488 |
#define FUNCTION_BOUNDARY (1 << (alpha_align_funcs + 3)) |
| 479 |
|
489 |
|
| 480 |
/* Alignment of field after `int : 0' in a structure. */ |
490 |
/* Alignment of field after `int : 0' in a structure. */ |
| 481 |
#define EMPTY_FIELD_BOUNDARY 64 |
491 |
#define EMPTY_FIELD_BOUNDARY 64 |
|
Lines 486-506
Link Here
|
| 486 |
/* A bitfield declared as `int' forces `int' alignment for the struct. */ |
496 |
/* A bitfield declared as `int' forces `int' alignment for the struct. */ |
| 487 |
#define PCC_BITFIELD_TYPE_MATTERS 1 |
497 |
#define PCC_BITFIELD_TYPE_MATTERS 1 |
| 488 |
|
498 |
|
| 489 |
/* Align loop starts for optimal branching. |
499 |
/* Align loop starts for optimal branching. */ |
| 490 |
|
500 |
extern int alpha_align_loops; /* power of two alignment for loops */ |
| 491 |
??? Kludge this and the next macro for the moment by not doing anything if |
501 |
#define LOOP_ALIGN(LABEL) (alpha_align_loops) |
| 492 |
we don't optimize and also if we are writing ECOFF symbols to work around |
502 |
|
| 493 |
a bug in DEC's assembler. */ |
503 |
/* This is how to align an instruction for optimal branching. |
| 494 |
|
504 |
On Alpha, we should get better performance by aligning to an |
| 495 |
#define LOOP_ALIGN(LABEL) \ |
505 |
octaword (16 byte) boundary. */ |
| 496 |
(optimize > 0 && write_symbols != SDB_DEBUG ? 4 : 0) |
506 |
extern int alpha_align_jumps; /* power of two alignment for jumos */ |
| 497 |
|
507 |
#define LABEL_ALIGN_AFTER_BARRIER(LABEL) (alpha_align_jumps) |
| 498 |
/* This is how to align an instruction for optimal branching. On |
|
|
| 499 |
Alpha we'll get better performance by aligning on an octaword |
| 500 |
boundary. */ |
| 501 |
|
| 502 |
#define LABEL_ALIGN_AFTER_BARRIER(FILE) \ |
| 503 |
(optimize > 0 && write_symbols != SDB_DEBUG ? 4 : 0) |
| 504 |
|
508 |
|
| 505 |
/* No data type wants to be aligned rounder than this. */ |
509 |
/* No data type wants to be aligned rounder than this. */ |
| 506 |
#define BIGGEST_ALIGNMENT 64 |
510 |
#define BIGGEST_ALIGNMENT 64 |