Add IRIX as a platform (#594)

Also cleaned up the flags a bit. Possibly the Pascal one should be
renamed to match, but I didn't want to fiddle with all the names again.

Going to try to stop agonising over the logo now!

Co-authored-by: pixel-stuck <mathmcclintic@gmail.com>
This commit is contained in:
EllipticEllipsis
2022-12-07 06:47:55 +00:00
committed by GitHub
parent ca28dd7714
commit 453f55ed9c
5 changed files with 120 additions and 18 deletions
+43 -18
View File
@@ -21,6 +21,7 @@ from coreapp.flags import (
from coreapp.platforms import (
GBA,
GC_WII,
IRIX,
MACOS9,
MACOSX,
N3DS,
@@ -307,6 +308,29 @@ EE_GCC296 = GCCCompiler(
cc='"${COMPILER_DIR}"/bin/ee-gcc -c -B "${COMPILER_DIR}"/bin/ee- $COMPILER_FLAGS "$INPUT" -o "$OUTPUT"',
)
# IRIX
IDO53_IRIX = IDOCompiler(
id="ido5.3_irix",
platform=IRIX,
cc='IDO_CC="${COMPILER_DIR}/cc" "${COMPILER_DIR}/cc" -c -Xcpluscomm -G0 -non_shared -woff 649,838,712 -32 ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"',
base_id="ido5.3",
)
IDO71_IRIX = IDOCompiler(
id="ido7.1_irix",
platform=IRIX,
cc='IDO_CC="${COMPILER_DIR}/cc" "${COMPILER_DIR}/cc" -c -Xcpluscomm -G0 -non_shared -woff 649,838,712 -32 ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"',
base_id="ido7.1",
)
IDO71PASCAL = IDOCompiler(
id="ido7.1Pascal",
platform=IRIX,
cc='IDO_CC="${COMPILER_DIR}/cc" "${COMPILER_DIR}/cc" -c -Xcpluscomm -G0 -non_shared ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"',
base_id="ido7.1",
language=Language.PASCAL,
)
# N64
IDO53 = IDOCompiler(
id="ido5.3",
@@ -320,15 +344,6 @@ IDO71 = IDOCompiler(
cc='IDO_CC="${COMPILER_DIR}/cc" "${COMPILER_DIR}/cc" -c -Xcpluscomm -G0 -non_shared -Wab,-r4300_mul -woff 649,838,712 -32 ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"',
)
# Pascal IDO
IDO71PASCAL = IDOCompiler(
id="ido7.1Pascal",
platform=N64,
cc='IDO_CC="${COMPILER_DIR}/cc" "${COMPILER_DIR}/cc" -c -Xcpluscomm -G0 -non_shared ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"',
base_id="ido7.1",
language=Language.PASCAL,
)
GCC272KMC = GCCCompiler(
id="gcc2.7.2kmc",
platform=N64,
@@ -705,6 +720,9 @@ _all_compilers: List[Compiler] = [
GCC272SNEW,
GCC281,
GCC281SNCXX,
# IRIX
IDO53_IRIX,
IDO71_IRIX,
IDO71PASCAL,
# GC_WII
MWCC_233_144,
@@ -917,34 +935,41 @@ _all_presets = [
"-O2 -g2 -mips3",
diff_flags=["-Mreg-names=32"],
),
# IRIX
Preset(
"IDO 5.3 cc",
IDO53,
"-O1 -KPIC -mips1",
IDO53_IRIX,
"-KPIC -mips1 -O1 -fullwarn",
diff_flags=["-Mreg-names=32"],
),
Preset(
"IDO 5.3 libraries",
IDO53,
"-O2 -KPIC -mips1",
IDO53_IRIX,
"-KPIC -mips1 -O2 -fullwarn",
diff_flags=["-Mreg-names=32"],
),
Preset(
"IDO 7.1 cc",
IDO71,
"-O1 -KPIC -mips2",
IDO71_IRIX,
"-KPIC -mips2 -O1 -fullwarn",
diff_flags=["-Mreg-names=32"],
),
Preset(
"IDO 7.1 libraries",
IDO71,
"-O2 -KPIC -mips2",
IDO71_IRIX,
"-KPIC -mips2 -O2 -fullwarn",
diff_flags=["-Mreg-names=32"],
),
Preset(
"IDO 7.1 Pascal",
IDO71PASCAL,
"-O2 -KPIC -mips2",
"-KPIC -mips2 -O2 -fullwarn",
diff_flags=["-Mreg-names=32"],
),
Preset(
"7.1 N64 SDK",
IDO71_IRIX,
"-KPIC -mips2 -g -fullwarn",
diff_flags=["-Mreg-names=32"],
),
# GC_WII
+72
View File
@@ -84,6 +84,77 @@ N64 = Platform(
.set gp=64
# Float register aliases (o32 ABI)
.set $fv0, $f0
.set $fv0f, $f1
.set $fv1, $f2
.set $fv1f, $f3
.set $ft0, $f4
.set $ft0f, $f5
.set $ft1, $f6
.set $ft1f, $f7
.set $ft2, $f8
.set $ft2f, $f9
.set $ft3, $f10
.set $ft3f, $f11
.set $fa0, $f12
.set $fa0f, $f13
.set $fa1, $f14
.set $fa1f, $f15
.set $ft4, $f16
.set $ft4f, $f17
.set $ft5, $f18
.set $ft5f, $f19
.set $fs0, $f20
.set $fs0f, $f21
.set $fs1, $f22
.set $fs1f, $f23
.set $fs2, $f24
.set $fs2f, $f25
.set $fs3, $f26
.set $fs3f, $f27
.set $fs4, $f28
.set $fs4f, $f29
.set $fs5, $f30
.set $fs5f, $f31
""",
)
IRIX = Platform(
id="irix",
name="IRIX",
description="MIPS (big-endian, PIC)",
arch="mips",
assemble_cmd='mips-linux-gnu-as -march=vr4300 -mabi=32 -KPIC -o "$OUTPUT" "$INPUT"',
objdump_cmd="mips-linux-gnu-objdump",
nm_cmd="mips-linux-gnu-nm",
diff_flags=COMMON_DIFF_FLAGS + COMMON_MIPS_DIFF_FLAGS,
asm_prelude="""
.macro .late_rodata
.section .rodata
.endm
.macro .late_rodata_alignment align
.endm
.macro glabel label
.global \label
.type \label, @function
\label:
.endm
.macro dlabel label
.global \label
\label:
.endm
.set noat
.set noreorder
.set gp=64
# Float register aliases (o32 ABI)
.set $fv0, $f0
@@ -528,6 +599,7 @@ _platforms: OrderedDict[str, Platform] = OrderedDict(
{
"dummy": DUMMY,
"switch": SWITCH,
"irix": IRIX,
"n64": N64,
"ps1": PS1,
"ps2": PS2,
+2
View File
@@ -23,6 +23,8 @@
"gcc2.8.1": "GCC 2.8.1",
"ido5.3": "IDO 5.3",
"ido7.1": "IDO 7.1",
"ido5.3_irix": "IDO 5.3",
"ido7.1_irix": "IDO 7.1",
"ido7.1Pascal": "IDO 7.1 Pascal",
"mwcc_20_72": "2.0 build 72 (MW 1.2base)",
"mwcc_20_79": "2.0 build 79 (MW 1.2sp2)",
@@ -1,5 +1,6 @@
import LogoGBA from "./gba.svg"
import LogoGCWii from "./gc_wii.svg"
import LogoIRIX from "./irix.svg"
import LogoMacOS from "./macos9.svg"
import LogoMacOSX from "./macosx.svg"
import LogoN3DS from "./n3ds.svg"
@@ -13,6 +14,7 @@ import UnknownIcon from "./unknown.svg"
const ICONS = {
"gba": LogoGBA,
"gc_wii": LogoGCWii,
"irix": LogoIRIX,
"nds_arm9": LogoNDS,
"n64": LogoN64,
"ps1": LogoPS1,
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="180.03" height="188.062" viewBox="0 0 47.633 49.758" stroke="#000" stroke-width="1.058" stroke-linejoin="round" xmlns:v="https://vecta.io/nano"><path d="M20.336.529a2.38 2.38 0 0 0-1.16.318l-13.43 7.75a2.38 2.38 0 0 0-.006 4.121l12.301 7.143.006 1.854-1.605.924L4.09 15.584A2.38 2.38 0 0 0 .53 17.658l.037 15.506a2.38 2.38 0 0 0 3.568 2.059l12.316-7.094 1.025.586v1.174l-12.27 7.182a2.38 2.38 0 0 0 .016 4.119l13.445 7.727a2.38 2.38 0 0 0 3.566-2.064l.002-14.23 1.58-.924 1.578.924.002 14.23a2.38 2.38 0 0 0 3.568 2.064l13.443-7.727a2.38 2.38 0 0 0 .018-4.119l-12.271-7.182v-1.174l1.025-.586 12.316 7.094a2.38 2.38 0 0 0 3.57-2.059l.037-15.506a2.38 2.38 0 0 0-3.562-2.074L31.19 22.639l-1.605-.924.006-1.854 12.301-7.143a2.38 2.38 0 0 0-.006-4.121L28.455.848a2.38 2.38 0 0 0-3.572 2.055l-.047 14.213-1.02.592-1.021-.594-.047-14.211A2.38 2.38 0 0 0 20.336.529zm-2.338 6.496l.023 7.318-6.332-3.678zm11.635 0l6.309 3.643-6.332 3.676zM5.301 21.762l6.359 3.631-6.342 3.652zm37.029 0l-.018 7.283-6.342-3.652zm-19.518.857a2.38 2.38 0 0 0 2.006 0l-.002.461a2.38 2.38 0 0 0 1.193 2.072l.4.23a2.38 2.38 0 0 0-1.006 1.727l-.387-.227a2.38 2.38 0 0 0-2.404 0l-.385.227a2.38 2.38 0 0 0-1.006-1.729l.398-.229a2.38 2.38 0 0 0 1.193-2.072zm7.344 12.787l6.32 3.699-6.318 3.631zm-12.682.002l-.002 7.328-6.316-3.631z" fill="#44c2b3"/><path d="M46.789 16.471a2.38 2.38 0 0 0-3.248-.887l-16.756 9.57-.193.111a2.38 2.38 0 0 0-1.199 2.068l.004 19.518a2.38 2.38 0 0 0 2.381 2.381m2.381-6.496l-.004-14.021 12.176-6.953m-37.03 0l12.176 6.953-.004 14.021m4.762 4.115l.004-19.518a2.38 2.38 0 0 0-1.199-2.068l-.193-.111-16.756-9.57a2.38 2.38 0 0 0-3.248.887m4.897-3.752l16.688 9.689.191.111a2.38 2.38 0 0 0 2.393 0l16.879-9.801m-5.949-2.051l-12.125 7.039-12.127-7.041" fill="none" stroke-linecap="round"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB