[Wisp-cvs] wisp/users/dig elf.py,1.40,1.41
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-04-27 12:58:11
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv18259 Modified Files: elf.py Log Message: use cleaner syntax in elf.py Index: elf.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/elf.py,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- elf.py 27 Apr 2003 12:56:17 -0000 1.40 +++ elf.py 27 Apr 2003 12:58:08 -0000 1.41 @@ -338,10 +338,10 @@ h.emit_string('\0' * 9) h.emit_wyde_sum(['#elf/type']) h.emit_wyde_sum(['#elf/machine']) - h.emit_tetra(EV.CURRENT) + h[::4] = EV.CURRENT if reloc: - h.emit_tetra(0) # no &_start - h.emit_tetra(0) # no !elf/proghdr + h[::4] = 0 # no &_start + h[::4] = 0 # no !elf/proghdr else: h.emit_tetra_sum(['&_start']) h.emit_tetra_sum(['!elf/proghdr']) @@ -380,7 +380,7 @@ t.emit_tetra_sum(['#.shstrtab/strings/' + name]) t.emit_tetra_sum(['#' + name + '/sh_type']) t.emit_tetra_sum(['#' + name + '/sh_flags']) - if zero_addresses: t.emit_tetra(0) + if zero_addresses: t[::4] = 0 else: t.emit_tetra_sum(['&' + name]) t.emit_tetra_sum(['!' + name]) t.emit_tetra_sum(['#' + name + '/sh_size']) @@ -420,10 +420,10 @@ ofs = this._strtab.emit_entry(pname[1:]) # No explicit alignment. .symtab doesn't bear padding; if # you get it out of align, you're out of luck anyway. - this.emit_tetra(ofs) + this[::4] = ofs if value == None: this.emit_tetra_sum([pname]) - else: this.emit_tetra(value) - this.emit_tetra(0) # st_size + else: this[::4] = value + this[::4] = 0 # st_size this[::1] = STB.GLOBAL << 4 | STT.NOTYPE this[::1] = 0 # st_other; reserved this[::2] = section @@ -437,9 +437,8 @@ i = symtab.emit_entry(pname, value = 0, section = SHN.UNDEF) # No explicit alignment. .rel* don't bear padding; if # you get it out of align, you're out of luck anyway. - rel.emit_tetra(offset) - rel.emit_tetra((i << 8) | type) - if addend <> None: rel.emit_tetra(addend) + rel[::4] = offset, (i << 8) | type + if addend <> None: rel[::4] = addend def infer_by_prefix (name, dict): for l in range(len(name), -1, -1): |