--- /n/sources/plan9/sys/src/cmd/gs/arch.h Sun Mar 15 18:55:12 2026 +++ /sys/src/cmd/gs/arch.h Sun Jun 21 00:00:00 2026 @@ -24,6 +24,10 @@ #include "riscv.h" #elif Triscv64 #include "riscv64.h" +#elif Tsparc +#include "sparc.h" +#elif Tpower64 +#include "power64.h" #else I do not know about your architecture. Update switch in arch.h with new architecture. --- /dev/null Sun Jun 21 04:16:40 2026 +++ /sys/src/cmd/gs/default.sparc.h Sun Jun 21 00:00:00 2026 @@ -0,0 +1,44 @@ +/* Parameters derived from machine and compiler architecture */ + + /* ---------------- Scalar alignments ---------------- */ + +#define ARCH_ALIGN_SHORT_MOD 2 +#define ARCH_ALIGN_INT_MOD 4 +#define ARCH_ALIGN_LONG_MOD 4 +#define ARCH_ALIGN_PTR_MOD 4 +#define ARCH_ALIGN_FLOAT_MOD 4 +#define ARCH_ALIGN_DOUBLE_MOD 4 +#define ARCH_ALIGN_STRUCT_MOD 4 + + /* ---------------- Scalar sizes ---------------- */ + +#define ARCH_LOG2_SIZEOF_SHORT 1 +#define ARCH_LOG2_SIZEOF_INT 2 +#define ARCH_LOG2_SIZEOF_LONG 2 +#define ARCH_LOG2_SIZEOF_LONG_LONG 3 +#define ARCH_SIZEOF_PTR 4 +#define ARCH_SIZEOF_FLOAT 4 +#define ARCH_SIZEOF_DOUBLE 8 +#define ARCH_FLOAT_MANTISSA_BITS 24 +#define ARCH_DOUBLE_MANTISSA_BITS 53 + + /* ---------------- Unsigned max values ---------------- */ + +#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0) +#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0) +#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0) +#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0) + + /* ---------------- Cache sizes ---------------- */ + +#define ARCH_CACHE1_SIZE 4096 +#define ARCH_CACHE2_SIZE 524288 + + /* ---------------- Miscellaneous ---------------- */ + +#define ARCH_IS_BIG_ENDIAN 1 +#define ARCH_PTRS_ARE_SIGNED 0 +#define ARCH_FLOATS_ARE_IEEE 1 +#define ARCH_ARITH_RSHIFT 2 +#define ARCH_CAN_SHIFT_FULL_LONG 0 +#define ARCH_DIV_NEG_POS_TRUNCATES 1 --- /dev/null Sun Jun 21 04:16:40 2026 +++ /sys/src/cmd/gs/default.power64.h Sun Jun 21 00:00:00 2026 @@ -0,0 +1,44 @@ +/* Parameters derived from machine and compiler architecture */ + + /* ---------------- Scalar alignments ---------------- */ + +#define ARCH_ALIGN_SHORT_MOD 2 +#define ARCH_ALIGN_INT_MOD 4 +#define ARCH_ALIGN_LONG_MOD 4 +#define ARCH_ALIGN_PTR_MOD 8 +#define ARCH_ALIGN_FLOAT_MOD 4 +#define ARCH_ALIGN_DOUBLE_MOD 8 +#define ARCH_ALIGN_STRUCT_MOD 8 + + /* ---------------- Scalar sizes ---------------- */ + +#define ARCH_LOG2_SIZEOF_SHORT 1 +#define ARCH_LOG2_SIZEOF_INT 2 +#define ARCH_LOG2_SIZEOF_LONG 2 +#define ARCH_LOG2_SIZEOF_LONG_LONG 3 +#define ARCH_SIZEOF_PTR 8 +#define ARCH_SIZEOF_FLOAT 4 +#define ARCH_SIZEOF_DOUBLE 8 +#define ARCH_FLOAT_MANTISSA_BITS 24 +#define ARCH_DOUBLE_MANTISSA_BITS 53 + + /* ---------------- Unsigned max values ---------------- */ + +#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0) +#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0) +#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0) +#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0) + + /* ---------------- Cache sizes ---------------- */ + +#define ARCH_CACHE1_SIZE 4096 +#define ARCH_CACHE2_SIZE 524288 + + /* ---------------- Miscellaneous ---------------- */ + +#define ARCH_IS_BIG_ENDIAN 1 +#define ARCH_PTRS_ARE_SIGNED 0 +#define ARCH_FLOATS_ARE_IEEE 1 +#define ARCH_ARITH_RSHIFT 2 +#define ARCH_CAN_SHIFT_FULL_LONG 0 +#define ARCH_DIV_NEG_POS_TRUNCATES 1