Branches

ppc-updated-backend

View source
ppc-updated-backend
Author Commit Message Labels Comments Date
250+ commits behind default.
Ivan Sichmann Freitas
Add support for disassembling big endian ppc dumps
Ivan Sichmann Freitas
Don't use autopath, set PYTHONPATH instead
Ivan Sichmann Freitas
Fix imports and make viewcode work again for ppc
Ivan Sichmann Freitas
Import and use BasicFinalDescr
Ivan Sichmann Freitas
Add missing attributes
Ivan Sichmann Freitas
Add alias for the scratch register used with floating point operations
Ivan Sichmann Freitas
Avoid index error for operations with no arguments
Ivan Sichmann Freitas
Implement regalloc_push for fixed and floating point immediates
Ivan Sichmann Freitas
Use correct names for new methods and attributes
Ivan Sichmann Freitas
Fix construction of PPCGuardTokens
Ivan Sichmann Freitas
Add method is_float to locations
Ivan Sichmann Freitas
Fix PPCGuardToken constructor
Ivan Sichmann Freitas
Merge branch 'default'
Ivan Sichmann Freitas
Fix frame_depth calculated size
Ivan Sichmann Freitas
Use the GuardToken from llsupport
Ivan Sichmann Freitas
Rewriting write_pending_failure_recoveries
Ivan Sichmann Freitas
Use the correct method for getting values at compile_loop_many_int_args
Ivan Sichmann Freitas
Add _push_all_regs_to_jitframe and _pop_all_regs_from_jitframe
Ivan Sichmann Freitas
Make tests run with shared assembler code from llsupport
Ivan Sichmann Freitas
Use GIL related code from llsupport
Ivan Sichmann Freitas
Remove duplicated methods, use BaseAssembly in setup()
Ivan Sichmann Freitas
Rename _teardown to teardown
Ivan Sichmann Freitas
Revert signal change in StackLocation
Ivan Sichmann Freitas
Fix regalloc initialization and usage
Ivan Sichmann Freitas
Update StackLocation
Ivan Sichmann Freitas
Define JITFRAME_FIXED_SIZE
Ivan Sichmann Freitas
Remove deprecated method
Ivan Sichmann Freitas
Jitframe related fixes
Ivan Sichmann Freitas
Remove value_array
Ivan Sichmann Freitas
Remove deprecated method make_execute_token
Ivan Sichmann Freitas
Update the prepare_finish method
Ivan Sichmann Freitas
Delete deprecated code from emit_finish
Ivan Sichmann Freitas
Remove deprecated functions and methods for jitting code
Ivan Sichmann Freitas
Substitute propagate_exception_v with propagate_exception_descr
Ivan Sichmann Freitas
Remove deprecated method call
Ivan Sichmann Freitas
Fix tests
Ivan Sichmann Freitas
Fix imports
Ivan Sichmann Freitas
Finish cpu detection
Ivan Sichmann Freitas
Merged pypy/pypy/default into ppc-updated-backend
Ivan Sichmann Freitas
Move the imported backend to the right location
Ivan Sichmann Freitas
Import old ppc backend
Ivan Sichmann Freitas
Detect PowerPC using uname -r
Armin Rigo
Add a comment: looks wrong here
edelsohn
For ncurses, use libncurses if it exists.
edelsohn
Add ppc directory to backend_tests.
edelsohn
Add support for int_force_ge_zero, raw_load, raw_store.
edelsohn
Merge.
edelsohn
merge
edelsohn
update some arm files for comparison.
edelsohn
test_compile_asmlen checkops cannot count instructions because PPC64
edelsohn
Optimize load_imm of 64 bit constant.
Armin Rigo
Fix the test for 69156e674339.
edelsohn
(edelsohn, arigato): Save and restore r3 around wb_slowpath call in
edelsohn
Remove set_vtable.
edelsohn
Support immediate argument for int_mul. Remove immediate argument support
edelsohn
On PPC, int_mul can have immediate argument, int_floordiv cannot.
edelsohn
Support immediate value second argument in prepare_binary_int_op_with_imm.
edelsohn
For getinteriorfield and setinteriorfield, if immediate offset is too
edelsohn
Upgrade to x86 version of viewcode.py adjusted for PPC.
edelsohn
Add autopath.py file.
edelsohn
Add code dump to copy_to_raw_memory for jit-backend-dump.
edelsohn
Explain minimum ABI requirements for stack frame.
edelsohn
Move sign extension from emit_call to _emit_call with result_info
edelsohn
Import LR_BC_OFFSET and use it for MINIFRAME_SIZE LR offset.
Armin Rigo
Write down the result of tedious investigation
Armin Rigo
Bah, found what is causing the ppc bug.
edelsohn
Use scratch registers and do not reuse loc_index.
edelsohn
Update arglocs creation. Allocate additional scratch register.
David Schneider
import test_virtualref from x86 backend
David Schneider
import test_loop_unroll into ppc backend
David Schneider
import test_float tests into PPC backend
David Schneider
skip test_read_timestamp in test_basic if the backend does not support longlong
David Schneider
(edelsohn) fix for _build_malloc_slowpath to correctly store FPRs
David Schneider
(edelsohn, bivab) implement new version of cond_call_gc
David Schneider
(edelsohn, bivab): use a word sized datatype for packing the number and
David Schneider
merge heads
David Schneider
fix for _emit_call where the address is stored on the stack
David Schneider
import test_dict to ppc backend
David Schneider
import test_del to ppc backend
edelsohn
cond_call_gc_wb compare now is bit test.
opassembler.py
Support stack addr for emit_call.
edelsohn
Merge.
edelsohn
Import remap_frame_layout() change from x86 and ARM.
edelsohn
Use .value not as_key() to access register number in load_imm().
David Schneider
tentative fix for regalloc_push and regalloc_pop involving stack_locations, fixes test_basic.py:test_loop_invariant_mul_bridge_ovf2
David Schneider
merge heads
David Schneider
forgot to remove some debugging code
David Schneider
merge arm-backend-2
edelsohn
In cmp_op helper, let cmp_op handle int vs float instead of emitting
edelsohn
Change r.r2 to r.TOC in call helpers.
edelsohn
(edelsohn,bivab): Do not use as_key() in regalloc_mov to access locations.
David Schneider
(edelsohn, bivab) add a failing test extracted from test_basic.py
David Schneider
make test_stuff_translates translate again (still failing)
David Schneider
fix test_call_assembler
David Schneider
another rename
David Schneider
rename asm property of PPC_CPU to assembler to match expected interface
David Schneider
fix to correctly skip runner_test tests for ARM on other platforms
David Schneider
re-remove file
David Schneider
add the ppc backed to the DIR_SPLIT list for test runs
bivab
import and adapt (failing) test_ajit tests from x86 backend
David Schneider
merge heads
David Schneider
update comment
bivab
add test_calling_convention
bivab
(edelsohn, bivab) some cleanup
bivab
(edelsohn, bivab): make the call to malloc_slowpath use the raw address using an "internal" ABI to avoid overhead and overriding R11 -.-
bivab
(edelsohn, bivab): import and adapt gc tests from the x86 backend
edelsohn
Add offsets to as_key for FPRegisterLocation and StackLocation.
edelsohn
Use make_function_prologue helper in _build_malloc_slowpath.
David Schneider
merge arm-backend-2 into branch
edelsohn
Support push and pop of floating point registers.
edelsohn
Duplicate float arguments in GPR slots
edelsohn
Remove argument to get_basic_shape().
edelsohn
(edelsohn, bivab): Cast "j" to float in test_stuff_translates.
edelsohn
Add support for convert_float_bytes_to_longlong and
edelsohn
merge arm-backend-2
edelsohn
merge dangling commit
edelsohn
merge ppc-backend-2
edelsohn
close branch to be merged
edelsohn
Pass addr_all_null_registers as third parameter to failure_recovery_func.
edelsohn
Add a third argument to failure_recovery_func() to pass a separate pointer
David Schneider
revert changes lost in merges
edelsohn
Save and restore floats in _build_malloc_slowpath.
edelsohn
Skip stack location in _set_initial_bindings for float arguments when
edelsohn
Increment over GPRs for float arguments.
edelsohn
Push and Pop floats.
edelsohn
Print values array in test_arguments_to_execute_token.
edelsohn
Import test_arguments_to_execute_token.
edelsohn
Do not import count_reg_args.
edelsohn
Define MAX_FREG_ARGS.
edelsohn
Re-write _emit_call parameter passing.
edelsohn
Do not trample float result register when saving and restoring volatiles.
edelsohn
Implement math_sqrt in prepare_call.
edelsohn
Fix typo in math_sqrt method name.
edelsohn
Use negation of EQ bit instead of UNORDERED for FLOAT_NE and INT_NE.
edelsohn
Include UNORDERED test for FLOAT_NE.
edelsohn
Save and restore non-volatile floats.
edelsohn
Save and restore volatile floats.
edelsohn
Do not save and restore f0 around remap_frame_layout.
edelsohn
Correct computation of index into fp_registers.
edelsohn
Add float support to emit_{get,set}*{field,array}*_gc.
edelsohn
Update managed fp registers in decode_registers_and_descr and
edelsohn
(edelsohn, bivab): Remove f0 from managed float registers.
edelsohn
(edelsohn, bivab): Support FP compare in emit_guard_value.
edelsohn
(edelsohn, bivab): Add FP support to cmp_op.
edelsohn
(edelsohn, bivab): In possibly_free_vars, do not free var if var is None.
edelsohn
Fix regalloc_mov for loading float immediate.
edelsohn
Fix typo in emit_guard_value FP case.
edelsohn
Store FP call arguments on the stack with FP operations.
edelsohn
Temporary kludge for FP arguments in set_initial_bindings.
edelsohn
Use offset directly as load float / store float displacement.
edelsohn
Import remap_frame_layout_mixed and use it in prepare_jump.
edelsohn
Change uses of ENCODING_AREA to FORCE_INDEX_OFS.
edelsohn
Pass RegisterLocation to mov_loc_loc.
edelsohn
Change force to call failure_recovery_func instead of
edelsohn
Import MANAGED_FP_REGS.
edelsohn
Define MANAGED_FP_REGS.
edelsohn
Set width for StackLocation.
edelsohn
Use FLOAT_INT_CONVERSION word in stack for emit_cast_float_to_int and
edelsohn
Delete FP result register copy in emit_guard_call_assembler Path B.
edelsohn
Delete after_call from FPRegisterManager and define call_result_location.
edelsohn
First FP argument in r.f1.
edelsohn
Add mffgpr and mftgpr instructions. Use them.
edelsohn
Use subfic instruction for CONST - REG.
edelsohn
Add float support to prepare_jump.
edelsohn
Fix float address subtraction in regalloc_mov.
edelsohn
Add float support to emit_guard_value and emit_guard_call_assembler.
edelsohn
Add float support to descriptors.
edelsohn
Define float_locs.
edelsohn
Add more float regalloc support.
edelsohn
Add get_latest_value_float.
edelsohn
Use is_fp_reg() in AssemblerLocation. Start emit_call float support.
edelsohn
Add float support to emit_finish.
edelsohn
Add float support to count_reg_args. Add float support to regalloc_mov. Fix arglocs typo.
edelsohn
Start for float support in PPC backend.
edelsohn
(edelsohn, arigato): Complete guard_class support for GC.
edelsohn
Only restore temporary register on paths where it was saved.
Sven Hager
factor out common code
Sven Hager
beautify code
Sven Hager
adjust comments
Sven Hager
(bivab, hager): insert stack check before building the PyPy frame
Sven Hager
kill obsolete tests
Sven Hager
(bivab, hager): bigger refactoring around emit_call to have more separation of concerns
Sven Hager
(bivab, hager): add optional path for not saving register r3
Sven Hager
implement method to call an address in a register
David Schneider
Use an updated copy of the environment instead of an empty one to run the boehm test in order to support custom LD_LIBRARY_PATH settings
Sven Hager
use less distinctions of cases to get CPU class
edelsohn
Refer to spilling pointer as SPP, not r31.
David Schneider
use the precalculated offset of the stacklocation to the spillling pointer when writing the callshape
edelsohn
(edelsohn, bivab): Add shadowstack header and footer for marker management.
Sven Hager
(edelsohn, bivab, hager): change name
Sven Hager
use store/load instead of architectury specific commands
Sven Hager
add_loop_instructions and list of allowed backend names for PPC32
Sven Hager
use r.RES instead of r.r3
Sven Hager
explicitely allocate scratch reg
Sven Hager
remove dead code
Sven Hager
adjust prepare_cond_call_gc_wb to ARM backend
Sven Hager
forgot to add files ...
Sven Hager
remove obsolete backend names
Sven Hager
(bivab, hager): fix bug in assemble_loop and assemble_bridge regarding positions and make test_compile_asmlen pass
Sven Hager
use more appropriate name of cpu class
Sven Hager
improve debug output
edelsohn
Don't save and restore r3 and r4 in REGLOC_TO_COPY_AREA_OFS.
edelsohn
Remove extra blank line.
Sven Hager
add test from ARM backend
Sven Hager
kill outcommented lines
Sven Hager
add debug information
Sven Hager
kill unused encoding/decoding functions
Sven Hager
use setup_method instead of setup_class
Sven Hager
emit some information when hitting not implemented operations
Sven Hager
remove obsolete information about old guard encoding style
Sven Hager
port test from ARM backend
Sven Hager
more cleanups
Sven Hager
more code cleanups
Sven Hager
code cleanup
Sven Hager
kill unused imports
Sven Hager
SCRATCH reg is used here, too
Sven Hager
(bivab, hager): merge runner_test.py with ARM backend
Sven Hager
merge
Sven Hager
merge
Sven Hager
(bivab, hager): add XXX comment
Sven Hager
(bivab, hager): remove comment, don't call assemble
Sven Hager
(bivab, hager): port fixes to GUARD CLASS from ARM backend
Sven Hager
also test card marking
Sven Hager
(bivab, hager): forgot to commit this the last time
Sven Hager
(bivab, hager): implement card marking
Sven Hager
call _emit_guard in emit_guard_class
edelsohn
Allocate normal stack frame in _build_malloc_slowpath.
Sven Hager
cast address
Sven Hager
add test_gc_integration from x86 backend
Sven Hager
(bivab, hager): the previous jump condition was correct, see comment in code
Sven Hager
use architecture independent cmp_op instead of cmpwi/cmpdi
Sven Hager
merge
Sven Hager
(bivab, hager): use more space efficient guard state encoding like X86 and ARM backends
Sven Hager
add *args to __exit__ method in class scratch_reg
Sven Hager
add method to branch and link to absolute address
David Schneider
(edelsohn, bivab) fix jump conditions in malloc_cond and cond_call_gc_wb to jump on equality
David Schneider
Add missing get/set interiorfield_raw operations
David Schneider
create a minimal frame malloc_slowpath and save sp and lr to the corresponding slots
David Schneider
(edelsohn, bivab) remove r2 and r13 from the list of volatile registers.
David Schneider
store frame size for malloc_slowpath in a variable
David Schneider
Do not save the volatile registers around the call malloc in malloc_slowpath
David Schneider
store the correct register here
David Schneider
Allow to add an offset of 0 when using shadow stack, as long as the offset is aligned
David Schneider
merge heads
David Schneider
Actually patch the machine code
David Schneider
use FORCE_INDEX_AREA
David Schneider
structure the return and exception paths in malloc_slowpath
David Schneider
create a minimal frame for malloc_slowpath to store the backchain and the return address
David Schneider
Prepare the instructions in malloc_slowpath to actually emit them
Sven Hager
use load instead of lwz/ld and store instead of stw/std
472 commits not shown.