@ -1,5 +1,5 @@
/* bfd back-end for HP PA-RISC SOM objects.
/* bfd back-end for HP PA-RISC SOM objects.
Copyright ( C ) 1990 , 1991 , 1992 , 1993 , 1994 , 1995
Copyright ( C ) 1990 , 1991 , 1992 , 1993 , 1994 , 1995 , 1996
Free Software Foundation , Inc .
Free Software Foundation , Inc .
Contributed by the Center for Software Science at the
Contributed by the Center for Software Science at the
@ -430,8 +430,9 @@ static const struct fixup_format som_fixup_formats[256] =
1 , " Lb4*=Mb1+L*= " , /* 0x2b */
1 , " Lb4*=Mb1+L*= " , /* 0x2b */
2 , " Lb4*=Md1+4*= " , /* 0x2c */
2 , " Lb4*=Md1+4*= " , /* 0x2c */
3 , " Ld1+=Me1+= " , /* 0x2d */
3 , " Ld1+=Me1+= " , /* 0x2d */
/* R_RESERVED */
/* R_SHORT_PCREL_MODE */
0 , " " , /* 0x2e */
0 , " " , /* 0x2e */
/* R_LONG_PCREL_MODE */
0 , " " , /* 0x2f */
0 , " " , /* 0x2f */
/* R_PCREL_CALL */
/* R_PCREL_CALL */
0 , " L4=RD=Sb= " , /* 0x30 */
0 , " L4=RD=Sb= " , /* 0x30 */
@ -637,14 +638,21 @@ static const struct fixup_format som_fixup_formats[256] =
1 , " P " , /* 0xd4 */
1 , " P " , /* 0xd4 */
2 , " P " , /* 0xd5 */
2 , " P " , /* 0xd5 */
3 , " P " , /* 0xd6 */
3 , " P " , /* 0xd6 */
/* R_RESERVED */
/* R_SEC_STMT */
0 , " " , /* 0xd7 */
0 , " " , /* 0xd7 */
/* R_N0SEL */
0 , " " , /* 0xd8 */
0 , " " , /* 0xd8 */
/* R_N1SEL */
0 , " " , /* 0xd9 */
0 , " " , /* 0xd9 */
/* R_LINETAB */
0 , " " , /* 0xda */
0 , " " , /* 0xda */
/* R_LINETAB_ESC */
0 , " " , /* 0xdb */
0 , " " , /* 0xdb */
/* R_LTP_OVERRIDE */
0 , " " , /* 0xdc */
0 , " " , /* 0xdc */
/* R_COMMENT */
0 , " " , /* 0xdd */
0 , " " , /* 0xdd */
/* R_RESERVED */
0 , " " , /* 0xde */
0 , " " , /* 0xde */
0 , " " , /* 0xdf */
0 , " " , /* 0xdf */
0 , " " , /* 0xe0 */
0 , " " , /* 0xe0 */
@ -719,7 +727,7 @@ static const int comp3_opcodes[] =
- 1
- 1
} ;
} ;
/* These apparently are not in older versions of hpux reloc.h. */
/* These apparently are not in older versions of hpux reloc.h (hpux7) . */
# ifndef R_DLT_REL
# ifndef R_DLT_REL
# define R_DLT_REL 0x78
# define R_DLT_REL 0x78
# endif
# endif
@ -732,6 +740,39 @@ static const int comp3_opcodes[] =
# define R_SEC_STMT 0xd7
# define R_SEC_STMT 0xd7
# endif
# endif
/* And these first appeared in hpux10. */
# ifndef R_SHORT_PCREL_MODE
# define R_SHORT_PCREL_MODE 0x3e
# endif
# ifndef R_LONG_PCREL_MODE
# define R_LONG_PCREL_MODE 0x3f
# endif
# ifndef R_N0SEL
# define R_N0SEL 0xd8
# endif
# ifndef R_N1SEL
# define R_N1SEL 0xd9
# endif
# ifndef R_LINETAB
# define R_LINETAB 0xda
# endif
# ifndef R_LINETAB_ESC
# define R_LINETAB_ESC 0xdb
# endif
# ifndef R_LTP_OVERRIDE
# define R_LTP_OVERRIDE 0xdc
# endif
# ifndef R_COMMENT
# define R_COMMENT 0xdd
# endif
static reloc_howto_type som_hppa_howto_table [ ] =
static reloc_howto_type som_hppa_howto_table [ ] =
{
{
{ R_NO_RELOCATION , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_NO_RELOCATION " } ,
{ R_NO_RELOCATION , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_NO_RELOCATION " } ,
@ -796,8 +837,8 @@ static reloc_howto_type som_hppa_howto_table[] =
{ R_PCREL_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PCREL_CALL " } ,
{ R_PCREL_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PCREL_CALL " } ,
{ R_PCREL_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PCREL_CALL " } ,
{ R_PCREL_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PCREL_CALL " } ,
{ R_PCREL_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PCREL_CALL " } ,
{ R_PCREL_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PCREL_CALL " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_SHORT_PCREL_MODE , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_SHORT_PCREL_MODE " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_LONG_PCREL_MODE , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_LONG_PCREL_MODE " } ,
{ R_ABS_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_ABS_CALL " } ,
{ R_ABS_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_ABS_CALL " } ,
{ R_ABS_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_ABS_CALL " } ,
{ R_ABS_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_ABS_CALL " } ,
{ R_ABS_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_ABS_CALL " } ,
{ R_ABS_CALL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_ABS_CALL " } ,
@ -950,12 +991,12 @@ static reloc_howto_type som_hppa_howto_table[] =
{ R_PREV_FIXUP , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PREV_FIXUP " } ,
{ R_PREV_FIXUP , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PREV_FIXUP " } ,
{ R_PREV_FIXUP , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PREV_FIXUP " } ,
{ R_PREV_FIXUP , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_PREV_FIXUP " } ,
{ R_SEC_STMT , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_SEC_STMT " } ,
{ R_SEC_STMT , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_SEC_STMT " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_N0SEL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_N0SEL " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_N1SEL , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_N1SEL " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_LINETAB , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_LINETAB " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_LINETAB_ESC , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_LINETAB_ESC " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_LTP_OVERRIDE , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_LTP_OVERRIDE " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_COMMENT , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_COMMENT " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
{ R_RESERVED , 0 , 0 , 32 , false , 0 , 0 , hppa_som_reloc , " R_RESERVED " } ,
@ -2578,6 +2619,8 @@ som_write_fixups (abfd, current_offset, total_reloc_sizep)
case R_COMP2 :
case R_COMP2 :
case R_BEGIN_BRTAB :
case R_BEGIN_BRTAB :
case R_END_BRTAB :
case R_END_BRTAB :
case R_N0SEL :
case R_N1SEL :
reloc_offset = bfd_reloc - > address ;
reloc_offset = bfd_reloc - > address ;
break ;
break ;