Inline the F_CATCH opcode (on AMD64 so far). This is a prerequisite for MACHINE_CODE_STACK_FRAMES, since inter_return_opcode_F_CATCH will "inject" itself on the C stack when the first F_CATCH opcode is encountered (and won't vanish until inter return, which may occur in an outer Pike frame).
Compiler and runtime: Added byte codes F_PUSH_CATCHES and F_CATCH_AT. These are needed to be able to save and restore the recovery context for generator functions. Updates the code generators for quite a few machine code backends.
Merge commit '722771973bd' into patches/lyslyskom22891031 * commit '722771973bd': (6177 commits) Verify that callablep responses are aligned with reality. ...
Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap * commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits) Removed the old typechecker. ...
Merge remote-tracking branch 'origin/master' into new_utf8
Merge remote-tracking branch 'origin/8.1' into gobject-introspection
Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63 * commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits) ...
Merge branch 'marty/call_frames' into 8.1 This introduces the --with-mc-stack-frames configure option, which will instruct the machine code generator to insert proper stack frames (currently only supported on X86-64). This is useful for profiling, especially in combination with Debug.generate_perf_map() on Linux.
Replace dynamic_buffer API everywhere This change should be purely cosmetic. It replaces the old dynamic_buffer API by the corresponding byte_buffer API everywhere. The wrapper definitions in dynamic_buffer.h will remain for now.
Compiler [sparc]: Added kludge to fix the code-generator for sparc. Some of the branch opcodes were broken on sparc when PIKE_DEBUG wasn't active. This is a temporary workaround.
Merge branch '7.9' into gobject-introspection
Document the new peep.c hooks.
Merge remote branch 'origin/7.9' into rblock_alloc Conflicts: src/post_modules/CritBit/floattree.cmod src/post_modules/CritBit/inttree.cmod src/post_modules/CritBit/stringtree.cmod
Doc: Added some more doc about the code generator.
Compiler: Added code-generation mode OPCODE_INLINE_RETURN.
Made IA32 machine code compatible with Darwin IA32 ABI. Enabled machine code for Darwin. Rev: src/code/README.txt:1.20 Rev: src/code/ia32.h:1.22 Rev: src/configure.in:1.697 Rev: src/interpret.c:1.301
Small clarification. Rev: src/code/README.txt:1.27
Renamed read_data() to read_program_data() since read_data conflicted with old code. Rev: src/code/README.txt:1.26 Rev: src/code/bytecode.h:1.13 Rev: src/code/ia32.h:1.27 Rev: src/code/ppc32.h:1.27 Rev: src/code/sparc.h:1.29 Rev: src/encode.c:1.236
Added read_data() to the required API. Rev: src/code/README.txt:1.25 Rev: src/code/bytecode.h:1.12 Rev: src/code/ia32.h:1.26 Rev: src/code/ppc32.h:1.26 Rev: src/code/sparc.h:1.28
Some clarifications and updates. Rev: src/code/README.txt:1.24
Fixed thread yield bug for tight loops when OPCODE_INLINE_BRANCH is used. Note: The ppc backend needs fixing too. Rev: src/code/README.txt:1.23 Rev: src/code/ia32.c:1.37 Rev: src/code/ia32.h:1.23 Rev: src/interpret.c:1.340 Rev: src/interpret.h:1.144 Rev: src/peep.c:1.96
Added GLOBAL_DEF_PROG_COUNTER. Rev: src/code/README.txt:1.22 Rev: src/interpret.c:1.321
Added the possibility for opcodes to pass the jump address through the return value instead of changing PROG_COUNTER directly. Any opcode which might jump is now a JUMP opcode, and the old jump opcodes are now PTRJUMP. Rev: bin/make_interpret_functions.pike:1.8 Rev: src/code/README.txt:1.21 Rev: src/interpret.c:1.318 Rev: src/interpret_functions.h:1.154 Rev: src/interpreter.h:1.85 Rev: src/lex.c:1.114 Rev: src/lex.h:1.28 Rev: src/opcodes.h:1.33 Rev: src/peep.c:1.87
Added EXIT_MACHINE_CODE to clean up after CALL_MACHINE_CODE, so that we don't have to rely on that the compiler can live with a clobbered stack pointer at the bottom of eval_instruction_low. Rev: src/code/README.txt:1.20 Rev: src/interpret.c:1.299
Added DISASSEMBLE_CODE(). Rev: src/code/README.txt:1.19
Added documentation of OPCODE_INLINE_BRANCH. Rev: src/code/README.txt:1.18
Added documentation for INS_F_JUMP_WITH_{ARG,TWO_ARGS}(). Rev: src/code/README.txt:1.17
Documented the new ADJUST_PIKE_PC macro. Rev: src/code/README.txt:1.16
Added CHECK_RELOC(). Rev: src/code/README.txt:1.15
More precise doc for UPDATE_PC. Rev: src/code/README.txt:1.14
Avoid the dependency on pikecode.h in program.h. The bytecode method specific type for PIKE_OPCODE_T had to move to program.h for this. Rev: src/code/README.txt:1.13 Rev: src/code/bytecode.h:1.5 Rev: src/code/computedgoto.h:1.4 Rev: src/code/ia32.h:1.14 Rev: src/code/ppc32.h:1.11 Rev: src/code/sparc.h:1.10 Rev: src/encode.c:1.139 Rev: src/program.h:1.154
Added doc for READ_F_JUMP. Rev: src/code/README.txt:1.12
Added documentation of CALL_MACHINE_CODE(). Rev: src/code/README.txt:1.11
More stuff moved to pikecode.[ch]. Rev: src/code/README.txt:1.10 Rev: src/code/ia32.h:1.9 Rev: src/code/sparc.h:1.8 Rev: src/interpret.c:1.233
Added ENTRY_PROLOGUE_SIZE, and added a prologue for sparc. Rev: src/code/README.txt:1.9 Rev: src/code/sparc.h:1.7 Rev: src/interpret.c:1.232
Minor change. Rev: src/code/README.txt:1.8
Added INS_ENTRY(). Rev: src/code/README.txt:1.7
squeezed another percent or so out of the interpreter (I need to test this stuff on an athlon processor!) Rev: src/code/README.txt:1.6 Rev: src/code/ia32.c:1.9 Rev: src/code/ia32.h:1.7 Rev: src/docode.c:1.126 Rev: src/docode.h:1.13 Rev: src/las.c:1.260 Rev: src/peep.c:1.64
added an optional macro called at labels Rev: src/code/README.txt:1.5 Rev: src/peep.c:1.63
Moved definition of PIKE_OPCODE_T to pikecode.h. Rev: src/code/README.txt:1.4 Rev: src/code/bytecode.h:1.4 Rev: src/code/computedgoto.h:1.3 Rev: src/code/ia32.h:1.5 Rev: src/code/sparc.c:1.5 Rev: src/code/sparc.h:1.5 Rev: src/interpret.h:1.94 Rev: src/program.h:1.141
Added {EN,DE}CODE_PROGRAM() to the pikecode API. Rev: src/code/README.txt:1.3 Rev: src/code/sparc.c:1.3 Rev: src/code/sparc.h:1.4 Rev: src/encode.c:1.115
More stuff moved out to pikecode.[ch]. Rev: src/code/README.txt:1.2 Rev: src/code/bytecode.h:1.3 Rev: src/code/computedgoto.h:1.2 Rev: src/code/ia32.h:1.2 Rev: src/code/sparc.h:1.3 Rev: src/interpret.c:1.229 Rev: src/program.c:1.359
Split out the low-level code-generation code to separate files. Rev: src/Makefile.in:1.270 Rev: src/code/README.txt:1.1 Rev: src/code/bytecode.c:1.1 Rev: src/code/bytecode.h:1.1 Rev: src/code/computedgoto.c:1.1 Rev: src/code/computedgoto.h:1.1 Rev: src/code/ia32.c:1.1 Rev: src/code/ia32.h:1.1 Rev: src/code/sparc.c:1.1 Rev: src/code/sparc.h:1.1 Rev: src/peep.c:1.62 Rev: src/pikecode.c:1.1 Rev: src/pikecode.h:1.1