Branch: Tag:

2019-10-26

2019-10-26 21:13:32 by Marcus Comstedt <marcus@mc.pp.se>

Compiler [arm32/arm64]: Implement new semantics of F_MARK_AT

2019-10-26 21:12:48 by Marcus Comstedt <marcus@mc.pp.se>

Compiler [arm32/arm64]: Fix maximum bytecode check

2019-09-03

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

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.

2018-11-04

2018-11-04 16:11:11 by Arne Goedeke <el@laramies.com>

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

2018-11-03

2018-11-03 14:21:37 by Marcus Comstedt <marcus@mc.pp.se>

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

2018-03-30

2018-03-30 16:06:39 by Arne Goedeke <el@laramies.com>

Interpreter: fixed handling of SAVE_LOCALS bitmask

Since the introduction of save_locals_bitmask, expendible_offset was
never set. Also since the handling of expendible_offset and
save_locals_bitmask were handled by the same case, the code was broken.

During pop entries handling of the save_locals bitmask could lead
to situations where locals above expendible_offset were 'copied' into
the trampoline frame. Those locals could have already been popped from
the stack by the RETURN_LOCAL opcode.

Also slightly refactored the code to not allocate more space for locals
than needed and removed some unnecessary casts.

This became visible and could lead to crashes when building for 32bit
on 64bit x86 machines.

2018-02-15

2018-02-15 11:58:36 by Martin Nilsson <nilsson@fastmail.com>

FALL THROUGH -> FALLTHRU to survive -Wimplicit-fallthrough=4.

2018-02-03

2018-02-03 13:58:22 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Fix F_INIT_FRAME on big endian

2018-02-03 09:48:55 by Peter Bortas <bortas@gmail.com>

Merge branch '8.1' into peter/travis

2018-02-01

2018-02-01 17:42:42 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Support big endian

2017-11-18

2017-11-18 10:13:13 by Arne Goedeke <el@laramies.com>

Interpreter: merge low_return variants

2017-11-05

2017-11-05 19:51:38 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Enable disassembler even without PIKE_DEBUG

2017-11-05 18:37:32 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Optimize arm64_mark by using postincrement

2017-10-28

2017-10-28 20:56:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added DUP, SWAP and NOT

2017-09-14

2017-09-14 21:39:26 by Arne Goedeke <el@laramies.com>

ARM: remove opcode statistics

There is a similar feature already available when compiling
with debug.

2017-09-14 21:39:26 by Arne Goedeke <el@laramies.com>

Compiler [arm64]: do not modify instrs array

2017-07-17

2017-07-17 15:30:05 by Martin Nilsson <nilsson@fastmail.com>

unsigned INT64 -> UINT64

2017-03-19

2017-03-19 15:41:08 by Arne Goedeke <el@laramies.com>

Interpreter: merge low_return variants

2017-02-18

2017-02-18 10:44:15 by Arne Goedeke <el@laramies.com>

Interpreter: merge low_return variants

2016-11-05

2016-11-05 15:15:29 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: removed unused code

2016-11-05 15:15:29 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: de-inline free_svalue

To reduce code size, we generate a simple free_svalue version
at the beginning of every program. When freeing an svalue, we
jump to that de-inlined version for every type which is reference
counted. This reduces the size of the generated machine code by around
10%.

2016-11-05 15:15:29 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: de-inlined F_RETURN

2016-11-05 15:15:29 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: use Pike_fatal for assert

2016-11-05 15:15:29 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: preliminary check_threads_etc

Uses dedicated register for the fast_check_threads_etc counter but
is generated in too many places for now.

ARM64: complete fast check threads

Slow path now only generated once per program.

2016-09-13

2016-09-13 18:41:47 by Arne Goedeke <el@laramies.com>

ARM: merge pike register handling

Most of the register loading and storing is now shared between 32 and 64 bit.

2016-09-13 18:24:08 by Arne Goedeke <el@laramies.com>

ARM: first step at merging arm 32 and 64 bit code base

moved label handling and register allocation into one source file.

2016-09-11

2016-09-11 20:38:29 by Marcus Comstedt <marcus@mc.pp.se>

ARM32 ARM64: Update PC before calling builtins

2016-09-11 15:35:11 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_PRIVATE_GLOBAL(_AND_POP)

2016-09-11 15:19:06 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: optimize handling of globals

* keep Pike_fp->current_storage in a register
* keep track of whether or not the current object
could have been destructed
* actually start using F_PRIVATE_GLOBAL

2016-09-11 14:56:23 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_PRIVATE_GLOBAL

2016-09-11 14:35:42 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added the F_CALL_BUILTIN opcodes

It would be useful to know at assembler time, if a given efun has
a return value or not.

2016-09-11 13:39:21 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added missing argument to inc/dec opcodes

2016-09-11 13:18:08 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added INC/DEC opcodes

2016-08-31

2016-08-31 14:23:23 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fixed F_EQ/F_NE

The fast path (for everything but objects and functions) was broken
in these two opcodes.

2016-08-31 14:23:23 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_RETURN_IF_TRUE

2016-08-31 14:23:23 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added F_OR_INT, F_AND_INT and F_XOR_INT

2016-08-31 14:23:23 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implemented F_LOOP

2016-08-31 14:23:23 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fixed F_LOOP

We cannot rely on the loopcnt always being positive.

2016-08-26

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: simplify some conditionals

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement some F_RETURN_* opcodes

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: correctly keep track of special registers

Since updating Pike_fp->pc would load the fp_reg, the fp_reg could
sometimes not be correctly invalidated after calling a opcode fun.

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: simplify prologue/epilogue generation

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fixed svalue type in F_THIS_OBJECT

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: introduced aliases for argument registers

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_THIS_OBJECT and F_SIZEOF_LOCAL

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix F_PROTECT_STACK

expendibles are stored as an offset in pike_frame now.

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: more debug prologues

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix bug in slowpath of integer ops

The slowpath of the integer operations could sometimes change the register
state. This was incorrect because it is not always executed.

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix several assert failure

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: better versions of F_STRING and F_CONSTANT

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Add some custom register names

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use pre-decrement when popping from mark stack

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use tbz/tbnz instructions

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use zero register some more

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use cbz/cbnz in more places

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Always return unconditional branches from ins_f_jump

This makes sure we get maximum avaiable range for future update_f_jumps.

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: do some checks only during init

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix some warnings

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_POP_TO_MARK

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_ASSIGN_LOCAL

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: generate better statistics

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: set return hint on function exits

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement OPCODE_INLINE_BRANCH

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement QUICK and comparison jumps

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Fix loading of string constants with large indices

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Initial commit

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: really_free_svalue does not change fp or sp

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added comparison opcodes

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added more CMP opcodes

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: remove c++ style comments

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added disassembler

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: add F_ADD_INTS

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: simplify arm32_ins_maybe_exit

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement fast paths for comparisons

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: use unsigned compare for pointers

2016-08-26 19:41:35 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added low level support for shift instructions

2016-08-24

2016-08-24 19:40:49 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix several assert failure

2016-08-24 19:27:23 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: better versions of F_STRING and F_CONSTANT

2016-08-21

2016-08-21 18:23:37 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Add some custom register names

2016-08-21 18:18:16 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use pre-decrement when popping from mark stack

2016-08-21 18:04:46 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use tbz/tbnz instructions

2016-08-21 17:32:24 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use zero register some more

2016-08-21 16:25:03 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Use cbz/cbnz in more places

2016-08-21 16:22:30 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Always return unconditional branches from ins_f_jump

This makes sure we get maximum avaiable range for future update_f_jumps.

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: really_free_svalue does not change fp or sp

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added comparison opcodes

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added low level support for shift instructions

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: use unsigned compare for pointers

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement fast paths for comparisons

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: simplify arm32_ins_maybe_exit

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_POP_TO_MARK

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_ASSIGN_LOCAL

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: generate better statistics

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: set return hint on function exits

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement OPCODE_INLINE_BRANCH

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement QUICK and comparison jumps

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Fix loading of string constants with large indices

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: Initial commit

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: add F_ADD_INTS

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added disassembler

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: more debug prologues

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: simplify some conditionals

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement some F_RETURN_* opcodes

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: correctly keep track of special registers

Since updating Pike_fp->pc would load the fp_reg, the fp_reg could
sometimes not be correctly invalidated after calling a opcode fun.

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: simplify prologue/epilogue generation

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fixed svalue type in F_THIS_OBJECT

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: introduced aliases for argument registers

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: implement F_THIS_OBJECT and F_SIZEOF_LOCAL

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix F_PROTECT_STACK

expendibles are stored as an offset in pike_frame now.

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: do some checks only during init

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix some warnings

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: added more CMP opcodes

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: remove c++ style comments

2016-08-21 14:33:07 by Marcus Comstedt <marcus@mc.pp.se>

ARM64: fix bug in slowpath of integer ops

The slowpath of the integer operations could sometimes change the register
state. This was incorrect because it is not always executed.