diff options
author | David Edelsohn <edelsohn@gnu.org> | 1996-02-19 22:26:19 +0000 |
---|---|---|
committer | David Edelsohn <edelsohn@gnu.org> | 1996-02-19 22:26:19 +0000 |
commit | 5854b0d02003df0d7efe67def8bd8ca7abbfabf6 (patch) | |
tree | 0a1ac10bd241e37fa62c4159bf6081f47731f010 | |
parent | 33fd3209ed31c480691ba75d4ab82e6c2a7f140e (diff) | |
download | gcc-5854b0d02003df0d7efe67def8bd8ca7abbfabf6.zip gcc-5854b0d02003df0d7efe67def8bd8ca7abbfabf6.tar.gz gcc-5854b0d02003df0d7efe67def8bd8ca7abbfabf6.tar.bz2 |
add AIX assembler doubleword integer syntax
From-SVN: r11308
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index b263d91..d4a3cbc 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -2285,7 +2285,7 @@ toc_section () \ fputs ("[DS]\n", FILE); \ RS6000_OUTPUT_BASENAME (FILE, NAME); \ fputs (":\n", FILE); \ - fputs ("\t.long .", FILE); \ + fputs ((TARGET_32BIT) ? "\t.long ." : "\t.llong .", FILE); \ RS6000_OUTPUT_BASENAME (FILE, NAME); \ fputs (", TOC[tc0], 0\n", FILE); \ fputs (".csect .text[PR]\n.", FILE); \ @@ -2593,6 +2593,23 @@ toc_section () \ /* This is how to output an assembler line defining an `int' constant. */ +#define ASM_OUTPUT_DOUBLE_INT(FILE,VALUE) \ +do { \ + if (TARGET_32BIT) \ + { \ + assemble_integer (operand_subword ((VALUE), 0, 0, DImode), \ + UNITS_PER_WORD, 1); \ + assemble_integer (operand_subword ((VALUE), 1, 0, DImode), \ + UNITS_PER_WORD, 1); \ + } \ + else \ + { \ + fputs ("\t.llong ", FILE); \ + output_addr_const (FILE, (VALUE)); \ + putc ('\n', FILE); \ + } \ +} while (0) + #define ASM_OUTPUT_INT(FILE,VALUE) \ ( fputs ("\t.long ", FILE), \ output_addr_const (FILE, (VALUE)), \ @@ -2647,7 +2664,7 @@ do { \ #define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ do { char buf[100]; \ - fputs ("\t.long ", FILE); \ + fputs ((TARGET_32BIT) ? "\t.long " : "\t.llong ", FILE); \ ASM_GENERATE_INTERNAL_LABEL (buf, "L", VALUE); \ assemble_name (FILE, buf); \ putc ('\n', FILE); \ @@ -2657,7 +2674,7 @@ do { \ #define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \ do { char buf[100]; \ - fputs ("\t.long ", FILE); \ + fputs ((TARGET_32BIT) ? "\t.long " : "\t.llong ", FILE); \ ASM_GENERATE_INTERNAL_LABEL (buf, "L", VALUE); \ assemble_name (FILE, buf); \ putc ('-', FILE); \ |