The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
v0.04_09 2010-12-03 rurban

%rbx on amd64 seems not be save across function calls.
  store op->next on 0(%rsp) ("the local stack") - not.
  store it at -8(%rbp)
protect %edx (used in dispatch handling)
prevent dryrun also from recursive cycles, but with a different HV
 Fix jmp byte overflow, use word size now.
re-work and document MAYBRANCH ops, sync with new Opcodes-0.10
  use simple GOTO as default (searches at run-time in targets, does not work yet)
first ENTERSUB attempt, but CvSTART detection would be much easier
  from the parser
more JIT_CHAIN helper macros
added libdisasm
properly NOP end of code (alignment)
rename help dir to asm

v0.04_08 2010-11-22 rurban

work on non-local jumps: GOTO and loops, new test 4.t
memalign fixes for openbsd: use size == pagesize when memalign==malloc
fixed maybranch for the logop else case (3.t test 1/2).
use high-level enter 8,0 paired to leave.
HV* otherops to check against recursion loops.
better tests: fix for spaces in path, 5.6: -MBlib workaround
improved make clean

v0.04_07 2010-11-18 rurban

fixes for <5.10: CopLABEL, push_arg1

v0.04_06 2010-11-18 rurban

fixed posix_memalign (freebsd)
added preliminary support for non-local jumps (goto + loops), not working though

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