diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-03-18 19:33:01 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-03-18 19:33:01 -0500 |
commit | 758f75838106c566252cb5223e8939fdd0c596f2 (patch) | |
tree | 0adc40f48dc473da00d674b493144ce40d6e87f1 /gcc | |
parent | bb821298b358e86b525b70c646eb643026015d3b (diff) | |
download | gcc-758f75838106c566252cb5223e8939fdd0c596f2.zip gcc-758f75838106c566252cb5223e8939fdd0c596f2.tar.gz gcc-758f75838106c566252cb5223e8939fdd0c596f2.tar.bz2 |
(FUNCTION_PROLOGUE): LE/370 takes 120 bytes for DSA.
Have only one copy of timestamp and PPA2 per object module.
Only have unnamed CSECT to match IBM C.
From-SVN: r11556
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/i370/i370.h | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/gcc/config/i370/i370.h b/gcc/config/i370/i370.h index 093a8c0..3a660a75 100644 --- a/gcc/config/i370/i370.h +++ b/gcc/config/i370/i370.h @@ -494,7 +494,7 @@ enum reg_class #define FUNCTION_PROLOGUE(FILE, LSIZE) \ { \ fprintf (FILE, "\tEDCPRLG USRDSAL=%d,BASEREG=%d\n", \ - STACK_POINTER_OFFSET + LSIZE + \ + STACK_POINTER_OFFSET + LSIZE - 120 + \ current_function_outgoing_args_size, BASE_REGISTER); \ fprintf (FILE, "PG%d\tEQU\t*\n", mvs_page_num ); \ fprintf (FILE, "\tLR\t11,1\n"); \ @@ -524,10 +524,19 @@ enum reg_class function_hour = function_time->tm_hour; \ function_minute = function_time->tm_min; \ function_second = function_time->tm_sec; \ + fprintf (FILE, "PPA2\tDS\t0F\n"); \ + fprintf (FILE, "\tDC\tX'03',X'00',X'33',X'00'\n"); \ + fprintf (FILE, "\tDC\tV(CEESTART),A(0)\n"); \ + fprintf (FILE, "\tDC\tA(CEETIMES)\n"); \ + fprintf (FILE, "CEETIMES\tDS\t0F\n"); \ + fprintf (FILE, "\tDC\tCL4'%d',CL4'%02d%02d',CL6'%02d%02d00'\n", \ + function_year, function_month, function_day, \ + function_hour, function_minute, function_second); \ + fprintf (FILE, "\tDC\tCL2'01',CL4'0100'\n"); \ } \ fprintf (FILE, "$DSD%03d\tDSECT\n", function_label_index); \ fprintf (FILE, "\tDS\tD\n"); \ - fprintf (FILE, "\tDS\tCL(120+%d)\n", STACK_POINTER_OFFSET + LSIZE \ + fprintf (FILE, "\tDS\tCL(%d)\n", STACK_POINTER_OFFSET + LSIZE \ + current_function_outgoing_args_size); \ fprintf (FILE, "\tORG\t$DSD%03d\n", function_label_index); \ fprintf (FILE, "\tDS\tCL(120+8)\n"); \ @@ -537,26 +546,17 @@ enum reg_class function_label_index); \ fprintf (FILE, "\tDS\t0H\n"); \ assemble_name (FILE, mvs_function_name); \ - fprintf (FILE, "\tCSECT\n"); \ + fprintf (FILE, "\tEQU\t*\n"); \ fprintf (FILE, "\tUSING\t*,15\n"); \ fprintf (FILE, "\tB\tFPL%03d\n", function_label_index); \ fprintf (FILE, "\tDC\tAL1(FPL%03d+4-*)\n", function_label_index + 1); \ fprintf (FILE, "\tDC\tX'CE',X'A0',AL1(16)\n"); \ - fprintf (FILE, "\tDC\tAL4($PPA%03d)\n",function_label_index); \ + fprintf (FILE, "\tDC\tAL4(PPA2)\n"); \ fprintf (FILE, "\tDC\tAL4(0)\n"); \ fprintf (FILE, "\tDC\tAL4($DSL%03d)\n", function_label_index); \ fprintf (FILE, "FPL%03d\tEQU\t*\n", function_label_index + 1); \ fprintf (FILE, "\tDC\tAL2(%d),C'%s'\n", strlen (mvs_function_name), \ mvs_function_name); \ - fprintf (FILE, "$PPA%03d\tDS\t0F\n", function_label_index); \ - fprintf (FILE, "\tDC\tX'03',X'00',X'33',X'00'\n"); \ - fprintf (FILE, "\tDC\tV(CEESTART),A(0)\n"); \ - fprintf (FILE, "\tDC\tA($TIM%03d)\n", function_label_index); \ - fprintf (FILE, "$TIM%03d\tDS\t0F\n", function_label_index); \ - fprintf (FILE, "\tDC\tCL4'%d',CL4'%02d%02d',CL6'%02d%02d00'\n", \ - function_year, function_month, function_day, \ - function_hour, function_minute, function_second); \ - fprintf (FILE, "\tDC\tCL2'01',CL4'0100'\n"); \ fprintf (FILE, "FPL%03d\tDS\t0H\n", function_label_index); \ fprintf (FILE, "\tSTM\t14,12,12(13)\n"); \ fprintf (FILE, "\tL\t2,76(,13)\n"); \ @@ -611,7 +611,10 @@ enum reg_class strcpy (mvs_function_name, NAME); \ fprintf (FILE, "\tDS\t0F\n"); \ assemble_name (FILE, mvs_function_name); \ - fputs ("\tCSECT\n", FILE); \ + fputs ("\tEQU\t*\n", FILE); \ + fputs ("\tENTRY\t", FILE); \ + assemble_name (FILE, mvs_function_name); \ + fputc ('\n', FILE); \ } /* This macro generates the assembly code for function exit, on machines |