v0.04_05 2010-11-16 rurban
fixed amd64thr: my_perl is initially at %eax
fixed threaded -Ds debstack calls, -Dt fails
fixed HAVE_DISPATCH on all 4 platforms
work on mybranch: move if maybranch: op = PL_op->next before call,
without dynamic next maybranch_check 3.t even works.
simplify jit_chain code
harmonize amd64 maybranch asm (store next away at r12),
use dbg_lines macros instead of ugly #ifdef orgies
t/2.t works now mostly, t/3.t not yet working
v0.04_04 2010-11-15 rurban
enabled HAVE_DISPATCH on i386, tested ok on i386 threaded and unthreaded.
on amd64 untested.
v0.04_03 2010-11-14 rurban
fix tests for Win cmd.exe shell. Tested ok on strawberry and ActivePerl 5.8
started work on WIN64 calling conventions (no test system yet).
rcx is not safe to use on amd64 for &PL_sig_pending
fixed solaris 10 / cc 32-bit
fixed perl5.6.2 (check old macros)
v0.04_02 2010-11-13 rurban
fixed -Dt for amd64
do not support MULTIPLICITY without ITHREADS
2.t first enter works again on i386, just not when calling -Dt (probably some register sideeffect).
v0.04_01 2010-11-12 rurban
make amd64 non-threaded work again (old absolute save_plop)
amd64 r12 unused, only rbx and rcx. maybranch not yet refactored
forgot LOGOP JIT_CHAIN code+root, so the op->next block (true) was never emitted
1st simple profiling looks promising
See http://blogs.perl.org/users/rurban/2010/11/performance-hacks.html
Try to overcome a missing memalign, by manually aligning the malloced code section,
first to pagesize, then to 4096. Fails tests on cygwin, but this has memalign.
implement -Dt debop op tracing within the jit, also -Ds debstack
add my_perl to jit_chain
rename PUSHmov to PUSHrel
CALL_ABS changes code
add absword and revword macros, use it
add push_imm, push_imm_0 (call any functions)
skip t/3.t on no DEBUGGING perl
check old DEBUG_s..., Perl_ck_warner_d, fix pod
adjust docs (threaded works now)
add explicit abstract and license
TODO first PL_op enter definitevly missing (test 2)
v0.04 2010-11-07 rurban
Fixed i386 1.t + 2.t, threaded and non-threaded
wrong mov %eax,(%ebx),
mov $mem,%ebx (forgot shifting)
save_plop now without argument
t/3.t maybranch still fails
v0.0302 2010-11-06 rurban
Added memalign, posix_memalign probes. Got failing reports for OpenBSD.
v0.0301 2010-08-28 rurban
Oops, add missing {i386,amd64}.c code to MANIFEST
v0.03 2010-08-09 rurban
Start with amd64/x86_64
Include seperate CPU threaded/non-threaded c files
Create run-jit.c and run-jit.o with .stabs when DEBUGGING
Refactor (maybranch) into jit_chain which runs twice to
support branches eventually - ops which do not return op_next
seperate tests, only 1.t works
v0.02 2010-08-06 rurban
Found the i386 call bug with rafl's help - "use stepi"
- call = e9 (using offsets!), not ff 25 (jmp far).
Fixed call near offsets and PL_op offset without USE_JMP_TABLE.
Fixed initialising PL_op
Small i386 (non-threading) programs do work now
v0.01 2010-08-05 rurban
Non-working version pushed to CPAN being on YAPC::EU. Wanted to show it in a
lightning talk.
- 2010-03-14 rurban
Created and published at http://gist.github.com/331867