Wprowadzenie

TODO Na chwilę obecną rozważam by całkiem usunąć Loffi jako IR. Decyzję podejmę gdy już będę pewny architektury kompilatora.

Zależności

Ogólna specyfikacja Lofficinale zależy od kilku innych istniejących norm:

  • IEEE 754, dla reprezentacji większości liczb zmiennoprzecinkowych oraz semantyki powiązanych z nimi operacji numerycznych.

  • Unicode, dla reprezentacji importowanych lub eksportowanych nazw w modułach Loffi oraz struktury leksykalnej kodu źródlowego Lovage.

Terminologia

TODO

Specyfikacja

TODO

Układ Fizyczny Serializacji

Table 1. Nagłówek (16 bajtów)
Bajty Treść

0-3

Magiczna Liczba.

TODO tablica sekcji

Układ Logiczny Modułu

TODO sekcje

Forma Binarna

Ta część specyfikacji opisuje dokładne formy binarne wszystkich instrukcji. Zobacz Układ Fizyczny Serializacji dla sposobu zakodowania danych.

Magiczna Liczba

Magiczną liczbą dla modułu Loffi jest 0x4c657669 ("Levi").

Dodatek A: Gramatyka Czytelna Maszynowo

{
  "copyright" : [...],
  "magic"     : "...",
  "version"   : "...",
  "tables"    : [...],
  "opcodes"   : [...],
  "datatypes" : [...]
}
copyright

TODO

magic

TODO

version

TODO

tables

TODO

opcodes

TODO

datatypes

TODO

tables:

{
  "name" : "...",
  "layout" : "...",
  TODO
}
name

TODO

layout

TODO aos, soa, blob, dag

opcodes:

{
  "mnemonic" : "...",
  "small" : [
    { "type" : "...", "bits" : ... },
    { "type" : "...", "bits" : ... }
  ],
  "operands" : [
    { "name" : "...", "type" : "...", "quantifier" : ... },
    { "name" : "...", "type" : "...", "quantifier" : ... }
  ],
  "doc"  : "..."
}
mnemonic

TODO

small

TODO

type

TODO

bits

TODO

operands

TODO

name

TODO

type

TODO

quantifier

TODO

doc

TODO

datatypes:

{
  "name" : "...",
  "kind" : "...",
  "fields" : [
    { "name" : "...", "type" : "...", "align" : ..., "doc" : "..." },
    { "name" : "...", "type" : "...", "align" : ..., "doc" : "..." }
  ],
  "align" : ...,
  "doc"  : "..."
}
name

TODO

kind

TODO enum, bitfield, struct, vector, packed, literal

fields

TODO

name

TODO

type

TODO

align

TODO

doc

TODO

align

TODO

doc

TODO