Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(324)

Unified Diff: src/cmd/8l/asm.c

Issue 186144: code review 186144: runtime: add demo running Go on raw (emulated) hw (Closed)
Patch Set: code review 186144: runtime: add demo running Go on raw (emulated) hw Created 14 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/cmd/8l/obj.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/cmd/8l/asm.c
===================================================================
--- a/src/cmd/8l/asm.c
+++ b/src/cmd/8l/asm.c
@@ -275,7 +275,7 @@
Sym *s, *shstrtab, *dynamic, *dynstr, *d;
int h, nsym, t;
- if(HEADTYPE != 7 && HEADTYPE != 8 && HEADTYPE != 9)
+ if(!iself)
return;
/* predefine strings we need for section headers */
@@ -504,6 +504,8 @@
switch(HEADTYPE) {
default:
+ if(iself)
+ goto Elfseek;
diag("unknown header type %d", HEADTYPE);
case 0:
seek(cout, rnd(HEADR+textsize, 8192), 0);
@@ -529,9 +531,7 @@
}
cflush();
break;
- case 7:
- case 8:
- case 9:
+ Elfseek:
case 10:
v = rnd(HEADR+textsize, INITRND);
seek(cout, v, 0);
@@ -570,6 +570,8 @@
Bflush(&bso);
switch(HEADTYPE) {
default:
+ if(iself)
+ goto Elfsym;
case 0:
seek(cout, rnd(HEADR+textsize, 8192)+datsize, 0);
break;
@@ -587,9 +589,7 @@
case 6:
symo = rnd(HEADR+textsize, INITRND)+rnd(datsize, INITRND)+machlink;
break;
- case 7:
- case 8:
- case 9:
+ Elfsym:
case 10:
symo = rnd(HEADR+textsize, INITRND)+datsize;
symo = rnd(symo, INITRND);
@@ -627,6 +627,8 @@
seek(cout, 0L, 0);
switch(HEADTYPE) {
default:
+ if(iself)
+ goto Elfput;
case 0: /* garbage */
lput(0x160L<<16); /* magic and sections */
lput(0L); /* time and date */
@@ -760,11 +762,9 @@
asmbmacho(symdatva, symo);
break;
- case 7:
- case 8:
- case 9:
+ Elfput:
/* elf 386 */
- if(HEADTYPE == 8)
+ if(HEADTYPE == 8 || HEADTYPE == 11)
debug['d'] = 1;
eh = getElfEhdr();
@@ -833,7 +833,7 @@
ph->memsz = w+bsssize;
ph->align = INITRND;
- if(!debug['s'] && HEADTYPE != 8) {
+ if(!debug['s'] && HEADTYPE != 8 && HEADTYPE != 11) {
ph = newElfPhdr();
ph->type = PT_LOAD;
ph->flags = PF_W+PF_R;
« no previous file with comments | « no previous file | src/cmd/8l/obj.c » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b