Browse source

Changelog

Query
From:
To:
Branch:
Path:
Message:
BugID:
User: +
Format:
: 13 checkins (+10704/-612) by Marcus Comstedt <marcus@mc.pp.se> Lines added/removed recently

Sunday 05 August 2018

2018-08-05 15:43:53 (2 weeks ago) by Marcus Comstedt <marcus@mc.pp.se>

RISCV: Create millicode at the start of each program for common operations
RISCV: Call functions using a table of function proxies

Since the total size of all the proxies is below 4K (each proxy is a
single JALR instruction, or in worst case an AUIPC + a JALR), and they
are packed together in a special section, any proxy can be addressed
as a 12-bit offset from a base address kept in a register. This means
a single JALR instruction can be used to call any of them even when a
relative call would not reach.

Note that the proxies must be located in the .text segment in order to
be able to reach their destination with a relative jump (on 64-bit).
Thus, generating the proxies on the heap at runtime would not work.
RISCV: Inline some RETURN opcodes
RISCV: Minimal machine code backend
RISCV: Add disassembler

[permalink]

Bugs? Suggestions?