diff options
author | kan <kan@FreeBSD.org> | 2002-09-01 20:38:57 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2002-09-01 20:38:57 +0000 |
commit | 2e25f3a6c57335cba50111faceb0ce2ab59e9bcb (patch) | |
tree | c6857d31c36dbd89a881b0229bf38b062797d413 /contrib/gcc/config/alpha | |
parent | 0895e1acb698e05d503c26bec5471de2e88b7d93 (diff) | |
download | FreeBSD-src-2e25f3a6c57335cba50111faceb0ce2ab59e9bcb.zip FreeBSD-src-2e25f3a6c57335cba50111faceb0ce2ab59e9bcb.tar.gz |
Gcc 3.2.1-prerelease from the FSF anoncvs repo gcc-3_2-branch on 1-Sep-2002 00:00:01 EDT.
Diffstat (limited to 'contrib/gcc/config/alpha')
-rw-r--r-- | contrib/gcc/config/alpha/alpha.c | 6 | ||||
-rw-r--r-- | contrib/gcc/config/alpha/alpha.h | 36 | ||||
-rw-r--r-- | contrib/gcc/config/alpha/elf.h | 2 | ||||
-rw-r--r-- | contrib/gcc/config/alpha/netbsd.h | 2 | ||||
-rw-r--r-- | contrib/gcc/config/alpha/unicosmk.h | 24 |
5 files changed, 31 insertions, 39 deletions
diff --git a/contrib/gcc/config/alpha/alpha.c b/contrib/gcc/config/alpha/alpha.c index c91e68c..3bc8e4d 100644 --- a/contrib/gcc/config/alpha/alpha.c +++ b/contrib/gcc/config/alpha/alpha.c @@ -1664,7 +1664,11 @@ alpha_encode_section_info (decl) XSTR (XEXP (DECL_RTL (decl), 0), 0) = string; } else if (symbol_str[0] == '@') - abort (); + { + /* We're hosed. This can happen when the user adds a weak + attribute after rtl generation. They should have gotten + a warning about unspecified behaviour from varasm.c. */ + } } /* legitimate_address_p recognizes an RTL expression that is a valid diff --git a/contrib/gcc/config/alpha/alpha.h b/contrib/gcc/config/alpha/alpha.h index b2363bc..4410a86 100644 --- a/contrib/gcc/config/alpha/alpha.h +++ b/contrib/gcc/config/alpha/alpha.h @@ -1224,42 +1224,6 @@ extern struct alpha_compare alpha_compare; #define FUNCTION_PROFILER(FILE, LABELNO) -/* Output assembler code to FILE to initialize this source file's - basic block profiling info, if that has not already been done. - This assumes that __bb_init_func doesn't garble a1-a5. */ - -#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \ - do { \ - ASM_OUTPUT_REG_PUSH (FILE, 16); \ - fputs ("\tlda $16,$PBX32\n", (FILE)); \ - fputs ("\tldq $26,0($16)\n", (FILE)); \ - fputs ("\tbne $26,1f\n", (FILE)); \ - fputs ("\tlda $27,__bb_init_func\n", (FILE)); \ - fputs ("\tjsr $26,($27),__bb_init_func\n", (FILE)); \ - fputs ("\tldgp $29,0($26)\n", (FILE)); \ - fputs ("1:\n", (FILE)); \ - ASM_OUTPUT_REG_POP (FILE, 16); \ - } while (0); - -/* Output assembler code to FILE to increment the entry-count for - the BLOCKNO'th basic block in this source file. */ - -#define BLOCK_PROFILER(FILE, BLOCKNO) \ - do { \ - int blockn = (BLOCKNO); \ - fputs ("\tsubq $30,16,$30\n", (FILE)); \ - fputs ("\tstq $26,0($30)\n", (FILE)); \ - fputs ("\tstq $27,8($30)\n", (FILE)); \ - fputs ("\tlda $26,$PBX34\n", (FILE)); \ - fprintf ((FILE), "\tldq $27,%d($26)\n", 8*blockn); \ - fputs ("\taddq $27,1,$27\n", (FILE)); \ - fprintf ((FILE), "\tstq $27,%d($26)\n", 8*blockn); \ - fputs ("\tldq $26,0($30)\n", (FILE)); \ - fputs ("\tldq $27,8($30)\n", (FILE)); \ - fputs ("\taddq $30,16,$30\n", (FILE)); \ - } while (0) - - /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in functions that have frame pointers. diff --git a/contrib/gcc/config/alpha/elf.h b/contrib/gcc/config/alpha/elf.h index 05853c2..9f8d808 100644 --- a/contrib/gcc/config/alpha/elf.h +++ b/contrib/gcc/config/alpha/elf.h @@ -165,7 +165,7 @@ do { \ } \ ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT)); \ ASM_OUTPUT_LABEL(FILE, NAME); \ - ASM_OUTPUT_SKIP((FILE), (SIZE)); \ + ASM_OUTPUT_SKIP((FILE), (SIZE) ? (SIZE) : 1); \ } while (0) /* This says how to output assembler code to declare an diff --git a/contrib/gcc/config/alpha/netbsd.h b/contrib/gcc/config/alpha/netbsd.h index e5551da..9a54c3a 100644 --- a/contrib/gcc/config/alpha/netbsd.h +++ b/contrib/gcc/config/alpha/netbsd.h @@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. */ #undef CPP_PREDEFINES #define CPP_PREDEFINES \ - "-D__NetBSD__ -D__ELF__ -Asystem=unix -Asystem=NetBSD" + "-D__NetBSD__ -D__ELF__ -D_LP64 -Asystem=unix -Asystem=NetBSD" /* Show that we need a GP when profiling. */ diff --git a/contrib/gcc/config/alpha/unicosmk.h b/contrib/gcc/config/alpha/unicosmk.h index 65ab319..6dbe1a3 100644 --- a/contrib/gcc/config/alpha/unicosmk.h +++ b/contrib/gcc/config/alpha/unicosmk.h @@ -574,6 +574,30 @@ ssib_section () \ #ifndef REAL_ARITHMETIC #define REAL_VALUE_ATOF(x,s) atof(x) #define REAL_VALUE_HTOF(x,s) atof(x) + +#define REAL_VALUE_TO_TARGET_SINGLE(IN, OUT) \ +do { \ + union { \ + float f; \ + HOST_WIDE_INT l; \ + } u; \ + \ + u.f = (IN); \ + (OUT) = (u.l >> 32) & 0xFFFFFFFF; \ +} while (0) + +#define REAL_VALUE_TO_TARGET_DOUBLE(IN, OUT) \ +do { \ + union { \ + REAL_VALUE_TYPE f; \ + HOST_WIDE_INT l; \ + } u; \ + \ + u.f = (IN); \ + (OUT)[0] = (u.l >> 32) & 0xFFFFFFFF; \ + (OUT)[1] = (u.l & 0xFFFFFFFF); \ +} while (0) + #endif #undef NM_FLAGS |