ack/mach/arm/as/mach0.c
George Koehler a434749fd9 Widen valu_t in the assembler to 64 bits.
Most machines had undefined valu_t and redefined it to a different
type.  Edit mach/*/as/mach0.c to remove such redefinitions, so the
next change to valu_t will affect all machines.

Edit mach/proto/as/comm0.h to change valu_t to int64_t, and add
uvalu_t and uint64_t.

Remove int64_t y_valu8 from the yacc %union, now that valu_t y_valu
can hold 64 bits.  Replace y_valu8 with y_valu.  The .data8 pseudo
becomes less special; it now accepts absolute expressions.

This change simplifies the assembler and seems to have no effect on
the assembled output.  Among the files in share/ack/examples, the only
changes are in hilo_bas.* and startrek_c.linuxppc, but those files
seem to change whenever I rebuild them.
2019-10-04 18:58:56 -04:00

48 lines
796 B
C

/* $Header; mach0.c, v1.2 06-Mar-89 AJM */
#define LISTING
#define ASLD
#define THREE_PASS
#define DEBUG 0
/*
#define WORDS_REVERSED
#define BYTES_REVERSED
*/
#undef ADDR_T
#define ADDR_T long
#undef word_t
#define word_t long
#undef ALIGNWORD
#define ALIGNWORD 4
#undef ALIGNSECT
#define ALIGNSECT 4
#undef VALWIDTH
#define VALWIDTH 8
#define S_REG 0xF
#define S_NUM 0x8
#define ADC 0x00A00000
#define ADD 0x00800000
#define AND 0x00000000
#define BIC 0x01C00000
#define EOR 0x00200000
#define ORR 0x01800000
#define RSB 0x00600000
#define RSC 0x00E00000
#define SBC 0x00C00000
#define SUB 0x00400000
#define MOV 0x01A00000
#define MVN 0x01E00000
#define CMN 0x01700000
#define CMP 0x01500000
#define TEQ 0x01300000
#define TST 0x01100000
#define LDR 0x04100000
#define STR 0x04000000