[ABI] Updated instruction DB, operands, and minor API changes

This changeset contains an updated instruction database that brings
ARM32 instructions for the first time. It also updates instruction
database tooling especially for ARM64, which will also be used by
ARM32 generator.

Additionally, new operan has been added, which represents a register
list as used by ARM32 instruction set.

Other minor changes are related to ARM - some stuff had to be moved
to a64 namespace from arm namespace as it's incompatible between
32-bit and 64-bit ISA.
This commit is contained in:
kobalicek
2023-12-26 23:28:40 +01:00
parent 13bd440022
commit b25df5554d
75 changed files with 5007 additions and 3934 deletions

View File

@@ -6,13 +6,13 @@
"use strict";
const core = require("./tablegen.js");
const commons = require("./gencommons.js");
const commons = require("./generator-commons.js");
const hasOwn = Object.prototype.hasOwnProperty;
const asmdb = core.asmdb;
const kIndent = core.kIndent;
const IndexedArray = core.IndexedArray;
const StringUtils = core.StringUtils;
const kIndent = commons.kIndent;
const IndexedArray = commons.IndexedArray;
const StringUtils = commons.StringUtils;
const FATAL = commons.FATAL;
@@ -20,13 +20,10 @@ const FATAL = commons.FATAL;
// [ArmDB]
// ============================================================================
// Create ARM ISA.
const isa = new asmdb.arm.ISA();
// ============================================================================
// [tablegen.arm.GenUtils]
// ============================================================================
// Create AArch64 ISA.
const isa = new asmdb.aarch64.ISA();
/*
class GenUtils {
// Get a list of instructions based on `name` and optional `mode`.
static query(name, mode) {
@@ -71,6 +68,7 @@ class GenUtils {
return arr;
}
}
*/
// ============================================================================
// [tablegen.arm.ArmTableGen]