gecko-dev/js
Jakob Olesen cf990027c9 Bug 1207827 - Copy pool data into buffer immediately. r=nbp
Since constant pools have been simplified such that they always follow
the load instructions referencing them, it is now possible to copy the
pool data into the main assembly buffer right away in finishPool()
instead of deferring the copy to executableCopy(). This has the
important effect that BufferOffset values don't need to be adjusted to
account for the size of injected constant pools.

- In finishPool(), copy the constant pool data into the main assembler
  buffer with putBytesLarge() which allows the potentially large pool
  data to be split over multiple slices.

- Stop copying pool data in executableCopy(). It has already
  been copied in finishPool().

- Simplify the PoolInfo data structure to a simple (firstEntry, offset)
  pair which records the necessary information about a single emitted
  constant pool.

- Rewrite poolEntryOffset() to use the new PoolInfo data.

- Simplify poolSizeBefore() to just return 0. This function will be
  removed entirely in a followup patch.

- Stop patching branches in executableCopy() and delete the
  patchBranch() method. Since buffer offsets are reliable when the
  branches are inserted and when labels are bound, there is no need to
  adjust branches to account for constant pools.

- Delete the BufferSliceTail class. It is no longer necessary to
  maintain a bit vector of branch instructions since we don't rewrite
  branches any longer. Use the plain AssemblerBuffer::Slice class
  instead.

This patch implements the basic functional change of copying pool data
immediately instead of deferring it. Followup patches will clean up the
now redundant code.

--HG--
extra : rebase_source : 719225aef25dbf1b4bb7561391224b3c5f8793a5
2015-10-20 12:57:39 -07:00
..
ductwork/debugger Bug 1207030 - Enable -Wshadow flag in more directories that have no -Wshadow warnings. r=glandium 2015-09-22 21:39:03 -07:00
examples Bug 1193583 - Rename Debugger.evalInGlobal to executeInGlobal. (r=jorendorff) 2015-08-30 15:08:19 -07:00
ipc Bug 1179003 - Convert the infallible objectClassIs proxy hook into a fallible getBuiltinClass hook that indicates class type via outparam. r=efaust, r=bz on DOM bits, r=billm on IPC bits 2015-08-28 21:55:40 -07:00
public Bug 1212663 - Use doxygen style comments in jsapi, r=Waldo 2015-10-17 13:27:16 -04:00
src Bug 1207827 - Copy pool data into buffer immediately. r=nbp 2015-10-20 12:57:39 -07:00
xpconnect Bug 1174785 - Part 1: Add LogModule, LogModuleManager, and LazyLogModule. r=froydnj 2015-10-19 12:22:11 -07:00