• rmcilroy@chromium.org's avatar
    [Arm]: Enable use of extended out-of-line constant pool for Arm. · 40af47d4
    rmcilroy@chromium.org authored
     - Adds support to the Arm assembler to use extended constant pools.
     - Update (set_)target_address_at to support extended constant pool load
       updates.
     - Replace Operand::is_single_instruction with Operand::instructions_required
       Due to the fact that different constant pool load types require different
       numbers of instructions.
     - Various cleanups of ConstantPoolBuilder to cleaner integration of the
       extended constant pool building.
     - Update GetRelocatedValue such that offsets to both map_check and bool_load
       are explicitly provided, rather than location of bool_load being inferred
       based on map_check, since the code inbetween is no longer of a predictable
       size.
     - Update MacroAssembler::GetRelocatedValueLocation() to add support for
       getting a value from an extended constant pool entry.
     - Update Debug::SetAfterBreakTarget() to use target_address_from_return_address
       when checking for debug breaks at constant pool load points.
     - Change ConstantPoolIterateBody to iterate over both heap and code pointer in
       the small section before moving onto the extended section, to work around the
       requirement of the serializer that pointers are iterated in-order.
     - Increase old_pointer_space SizeOfFirstPage() to offset the fact that constant
       pools are now in the old pointer space (rather than code).
    
    R=ulan@chromium.org
    
    Review URL: https://codereview.chromium.org/356393003
    
    git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    40af47d4
lithium-codegen-arm.cc 197 KB