ppc-jit-backend

View source
ppc-jit-backend
  • Contributors
    1. Loading...
Author Commit Message Date Builds
250+ commits behind default.
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 calculating the offset, so it works on little and big endian
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. First attempt at rewrite of cond_call_gc_wb for new write barrier.
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
David Schneider
remove outdated test
David Schneider
merge heads
David Schneider
skip test_read_timestamp on arm
David Schneider
import test_ajit tests from x86 backend
David Schneider
raise an error when trying to execute read_timestamp
edelsohn
In cmp_op helper, let cmp_op handle int vs float instead of emitting fcmpu directly.
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
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. Remove as_key for ImmediateLocation.
edelsohn
Use make_function_prologue helper in _build_malloc_slowpath.
David Schneider
merge arm-backend-2 into branch
David Schneider
revert partitioning for arm backend tests
David Schneider
mark tests as slow
David Schneider
use the --slow flag for long running tests
David Schneider
move check if we are running tests on ARM to the conftest file
David Schneider
disable junitxml generation as it seems not to be used and currently does not work with the setup for the ARM builders
David Schneider
add the ARM backend files to the list of files to be treated differently
David Schneider
Backed out changeset 2ad609c205d8
David Schneider
do not consider the file pypy/test_all.py as a test_xxx.py test file when collecting directories
David Schneider
merge default
David Schneider
extend timeout for ARM
David Schneider
fix for epoll to avoid that defined constans get casted to a long when running app level tests. On ARM EPOLLET is defined as 1u << 31 instead of 1 << 31 as it seems to be the case on x86 systems (at least those I checked), thus getting transformed to a long when running the app level tests on top of cpython.
David Schneider
kill a tab
edelsohn
Support push and pop of floating point registers.
David Schneider
unify interfaces for translation
edelsohn
Duplicate float arguments in GPR slots
David Schneider
use a default tuple instead of None
David Schneider
add an assert
David Schneider
avoid creating a large prebuilt constant
David Schneider
check result type (size and sign) around every call that can return a short or char
David Schneider
Start fixing issues mentioned by arigo in 6bac78dc2ff5 by using sign extending operations where adequate
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 convert_longlong_bytes_to_float.
edelsohn
merge arm-backend-2
David Schneider
extend timeout to work on ARM
David Schneider
merge default
David Schneider
merge default
David Schneider
merge default
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 to managed registers arena.
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 GPRs overflow.
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. Fix offset for saving float managed registers.
edelsohn
Add float support to emit_{get,set}*{field,array}*_gc.
edelsohn
Update managed fp registers in decode_registers_and_descr and decode_inputargs.
edelsohn
(edelsohn, bivab): Remove f0 from managed float registers.
edelsohn
(edelsohn, bivab): Support FP compare in emit_guard_value. Use FLOAT_INT_CONVERSION area to spill f0.
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. Add FPRM support to update_bindings.
edelsohn
Change uses of ENCODING_AREA to FORCE_INDEX_OFS. Add FP support to failure_recovery_func and decode_registers_and_descr. More experiments with imm_float support for regalloc_mov.
edelsohn
Pass RegisterLocation to mov_loc_loc. Change uses of ENCODING_AREA to FORCE_INDEX_OFS. Add FP args support to emit_call.
edelsohn
Change force to call failure_recovery_func instead of decode_registers_and_descr directly.
edelsohn
Import MANAGED_FP_REGS. FORCE_INDEX_OFS is MANAGED_REGS + 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 emit_cast_int_to_float. Fix typo in names.
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. Use subfic.
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.
Armin Rigo
Comment that it's a Very Bad Idea to make tests pass by adding "if not we_are_translated():" sections. It just means that the same tests won't pass after transaltion.
edelsohn
(edelsohn, arigato): Complete guard_class support for GC.
edelsohn
Only restore temporary register on paths where it was saved.
David Schneider
fix math_sqrt
David Schneider
implement convert_longlong_bytes_to_float
David Schneider
de-tab backend
David Schneider
merge default
David Schneider
backout 20eca32afd29
David Schneider
disable longlong support until I find a way to implement read_timestamp on ARM
David Schneider
implement the read timestamp operation. But it only works in privileged mode. Bah.
David Schneider
fix merge
David Schneider
mark test_convert_float_bytes as requiring longlong support
David Schneider
implement convert_float_bytes_to_longlong
David Schneider
add llong_to_int implementation
David Schneider
Add tests for SIMD instructions and fix VORR
David Schneider
refactor cast_float_to_int and cast_int_to_float using the VMOV operation
David Schneider
start implementing the long long support
David Schneider
combine all the mixins for operation implementations and change the assembler setup
David Schneider
merge default
David Schneider
merge default
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
David Schneider
implement stack overflow checks in the backend
David Schneider
remove debugger call
David Schneider
update to gcrootmap.get_basic_shape interface
David Schneider
invert indexing in checkops
David Schneider
merge default
David Schneider
set the -fPIC compiler flag when running on linux for ARM
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
David Schneider
increase timeout for termios tests
David Schneider
fix test_round_up_for_allocation for ARM ARM has stronger rules about aligned memory access that make this test behave differently
David Schneider
Fix for tests
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
David Schneider
make sure ll_os gets imported when running the test
David Schneider
remove tabs from codebase and make test_no_tabs pass
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
make sure we are only checking one byte in the cond cond_call_* operations
David Schneider
merge upstream
David Schneider
extend timeout in these tests too
David Schneider
merge heads
David Schneider
(arigo, bivab) Rename _Py_dg_* functions to __Py_dg_* to avoid name conflicts with python2.7 header files
David Schneider
merge default
David Schneider
Support math_sqrt operation in llgraph
David Schneider
handle force_spill operation in llgraph backend
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. r2 is persisted around calls anyway and r13 can be ignored
David Schneider
Also add a timeout to tests explicitly using pexpect
David Schneider
add a timeout of 600s to tests using pexpect. Timeouts were causing test failures on ARM
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 Saving the registers for malloc on the stack overwrites the saved volatiles leading to random failures when the volatile registers are restored. The volatile registers managed by the register allocator are saved and restored anyway around the call to malloc.
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
typo
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
1082 commits not shown.