Branch: Tag:


2019-09-03 09:23:22 by Henrik Grubbström (Grubba) <>

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.


2019-03-19 12:33:55 by Henrik Grubbström (Grubba) <>

Merge commit '722771973bd' into patches/lyslyskom22891031

* commit '722771973bd': (6177 commits)
Verify that callablep responses are aligned with reality.


2019-03-14 10:39:03 by Henrik Grubbström (Grubba) <>

Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap

* commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits)
Removed the old typechecker.


2018-11-04 16:11:11 by Arne Goedeke <>

Merge remote-tracking branch 'origin/master' into new_utf8


2018-11-03 14:21:37 by Marcus Comstedt <>

Merge remote-tracking branch 'origin/8.1' into gobject-introspection


2018-02-15 15:54:26 by Henrik Grubbström (Grubba) <>

Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63

* commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits)


2017-10-07 21:04:32 by Martin Karlgren <>

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.


2017-02-21 20:41:13 by Martin Karlgren <>

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).


2016-12-31 17:12:23 by Arne Goedeke <>

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.


2016-12-30 09:29:45 by Arne Goedeke <>

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.


2015-05-23 22:38:50 by Henrik Grubbström (Grubba) <>

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.


2012-10-06 11:38:03 by Marcus Comstedt <>

Merge branch '7.9' into gobject-introspection


2012-07-18 20:28:50 by Henrik Grubbström (Grubba) <>

Document the new peep.c hooks.


2012-06-15 09:54:06 by Arne Goedeke <>

Merge remote branch 'origin/7.9' into rblock_alloc



2012-04-09 10:30:24 by Henrik Grubbström (Grubba) <>

Doc: Added some more doc about the code generator.


2011-05-11 16:42:48 by Henrik Grubbström (Grubba) <>

Compiler: Added code-generation mode OPCODE_INLINE_RETURN.


2006-09-29 14:49:19 by Stefan Wallström <>

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/
Rev: src/interpret.c:1.301


2006-02-27 12:17:42 by Martin Stjernholm <>

Small clarification.

Rev: src/code/README.txt:1.27


2005-11-21 10:38:22 by Henrik Grubbström (Grubba) <>

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


2005-11-19 22:38:51 by Henrik Grubbström (Grubba) <>

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


2004-03-12 22:55:03 by Martin Stjernholm <>

Some clarifications and updates.

Rev: src/code/README.txt:1.24


2003-11-25 22:13:58 by Martin Stjernholm <>

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


2003-08-07 18:38:11 by Martin Stjernholm <>


Rev: src/code/README.txt:1.22
Rev: src/interpret.c:1.321


2003-08-06 18:05:30 by Martin Stjernholm <>

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


2003-03-22 13:38:42 by Martin Stjernholm <>

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


2002-11-07 12:38:38 by Henrik Grubbström (Grubba) <>


Rev: src/code/README.txt:1.19


2002-11-02 15:40:48 by Henrik Grubbström (Grubba) <>

Added documentation of OPCODE_INLINE_BRANCH.

Rev: src/code/README.txt:1.18

2002-11-02 14:57:40 by Henrik Grubbström (Grubba) <>

Added documentation for INS_F_JUMP_WITH_{ARG,TWO_ARGS}().

Rev: src/code/README.txt:1.17


2002-05-10 22:41:14 by Martin Stjernholm <>

Documented the new ADJUST_PIKE_PC macro.

Rev: src/code/README.txt:1.16

2002-05-10 15:40:06 by Henrik Grubbström (Grubba) <>


Rev: src/code/README.txt:1.15


2002-04-08 00:56:55 by Martin Stjernholm <>

More precise doc for UPDATE_PC.

Rev: src/code/README.txt:1.14


2002-04-07 19:30:50 by Martin Stjernholm <>

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


2001-08-17 17:52:14 by Marcus Comstedt <>

Added doc for READ_F_JUMP.

Rev: src/code/README.txt:1.12


2001-08-03 17:18:22 by Henrik Grubbström (Grubba) <>

Added documentation of CALL_MACHINE_CODE().

Rev: src/code/README.txt:1.11


2001-07-26 18:19:31 by Henrik Grubbström (Grubba) <>

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


2001-07-24 17:26:40 by Henrik Grubbström (Grubba) <>

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

2001-07-24 13:56:27 by Henrik Grubbström (Grubba) <>

Minor change.

Rev: src/code/README.txt:1.8

2001-07-24 13:54:17 by Henrik Grubbström (Grubba) <>

Added INS_ENTRY().

Rev: src/code/README.txt:1.7

2001-07-24 01:16:11 by Fredrik Hübinette (Hubbe) <>

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


2001-07-21 09:30:26 by Fredrik Hübinette (Hubbe) <>

added an optional macro called at labels

Rev: src/code/README.txt:1.5
Rev: src/peep.c:1.63


2001-07-20 22:45:20 by Henrik Grubbström (Grubba) <>

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

2001-07-20 16:21:32 by Henrik Grubbström (Grubba) <>

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

2001-07-20 15:49:00 by Henrik Grubbström (Grubba) <>

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

2001-07-20 12:44:55 by Henrik Grubbström (Grubba) <>

Split out the low-level code-generation code to separate files.

Rev: src/
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