projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
date and time created 88/10/21 13:47:49 by bostic
[unix-history]
/
usr
/
src
/
old
/
as.vax
/
asjxxx.c
diff --git
a/usr/src/old/as.vax/asjxxx.c
b/usr/src/old/as.vax/asjxxx.c
index
6bf05fd
..
b3d6157
100644
(file)
--- a/
usr/src/old/as.vax/asjxxx.c
+++ b/
usr/src/old/as.vax/asjxxx.c
@@
-1,8
+1,11
@@
/*
/*
- * Copyright (c) 1982 Regents of the University of California
+ * Copyright (c) 1982 Regents of the University of California.
+ * All rights reserved. The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
*/
*/
+
#ifndef lint
#ifndef lint
-static char sccsid[] = "@(#)asjxxx.c
4.9
%G%";
+static char sccsid[] = "@(#)asjxxx.c
5.4 (Berkeley)
%G%";
#endif not lint
#include <stdio.h>
#endif not lint
#include <stdio.h>
@@
-154,7
+157,8
@@
jalign(xp, sp)
*
* Currently, the loader guarantees full word alignment.
* So, ridiculous aligns are caught here and converted
*
* Currently, the loader guarantees full word alignment.
* So, ridiculous aligns are caught here and converted
- * to a .align 2, if possible.
+ * to a .align (maxalign), if possible, where maxalign
+ * is set in the command line, and defaults to 2.
*/
if ( ( (xp->e_xtype & XTYPE) != XABS)
|| (xp->e_xvalue < 0)
*/
if ( ( (xp->e_xtype & XTYPE) != XABS)
|| (xp->e_xvalue < 0)
@@
-163,16
+167,16
@@
jalign(xp, sp)
yyerror("Illegal `align' argument");
return;
}
yyerror("Illegal `align' argument");
return;
}
- if (xp->e_xvalue >
2
){
+ if (xp->e_xvalue >
maxalign
){
if (passno == 1){
yywarning(".align %d is NOT preserved by the loader",
xp->e_xvalue);
if (passno == 1){
yywarning(".align %d is NOT preserved by the loader",
xp->e_xvalue);
- yywarning(".align %d converted to .align
2
",
- xp->e_xvalue);
+ yywarning(".align %d converted to .align
%d
",
+ xp->e_xvalue
, maxalign
);
}
}
- xp->e_xvalue =
2
;
+ xp->e_xvalue =
maxalign
;
}
}
- flushfield(NB
PW
/4);
+ flushfield(NB
WD
/4);
if (passno == 1) {
sp->s_tag = JXALIGN;
sp->s_jxfear = (1 << xp->e_xvalue) - 1;
if (passno == 1) {
sp->s_tag = JXALIGN;
sp->s_jxfear = (1 << xp->e_xvalue) - 1;
@@
-335,7
+339,7
@@
jxxxfix()
if (displ >= 0) {
SEGITERATE(segno, cojumpfrom + 1,0,cointdest,
intdest, ubintdest, ++){
if (displ >= 0) {
SEGITERATE(segno, cojumpfrom + 1,0,cointdest,
intdest, ubintdest, ++){
- if (intdest
->s_value > dest->s_value)
+ if (intdest
== dest)
break; /* beyond destination */
if (intdest->s_tag <= JXQUESTIONABLE)
continue; /*frozen solid*/
break; /* beyond destination */
if (intdest->s_tag <= JXQUESTIONABLE)
continue; /*frozen solid*/
@@
-365,7
+369,7
@@
jxxxfix()
*/
SEGITERATE(segno, cojumpfrom - 1,1,cointdest,
intdest, ubintdest, --){
*/
SEGITERATE(segno, cojumpfrom - 1,1,cointdest,
intdest, ubintdest, --){
- if (intdest
->s_value <= dest->s_value)
+ if (intdest
== dest)
break; /* beyond destination */
if (intdest->s_tag <= JXQUESTIONABLE)
continue; /*frozen solid*/
break; /* beyond destination */
if (intdest->s_tag <= JXQUESTIONABLE)
continue; /*frozen solid*/