branch instructions tweaks
Some checks are pending
Build / cmake-builds (push) Waiting to run
Build / makefile (macos-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Waiting to run
Build / makefile (macos-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Waiting to run
Build / makefile (macos-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Waiting to run
Build / makefile (macos-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Waiting to run
Build / makefile (macos-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Waiting to run
Build / makefile (macos-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Waiting to run
Build / makefile (ubuntu-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Waiting to run
Build / makefile (ubuntu-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Waiting to run
Build / makefile (ubuntu-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Waiting to run
Build / makefile (ubuntu-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Waiting to run
Build / makefile (ubuntu-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Waiting to run
Build / makefile (ubuntu-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Waiting to run

This commit is contained in:
Folkert van Heusden 2025-04-04 01:02:24 +02:00
parent d8b99a1199
commit 53b600a39a
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1

View file

@ -171,26 +171,35 @@ void emit_branch_instructions(json_t *const target, int *const id)
printf("Branch instructions\n"); printf("Branch instructions\n");
for(int group=0; group<2; group++) { for(int group=0; group<2; group++) {
for(int bt=0; bt<8; bt++) { for(int bt=0; bt<8; bt++) {
uint16_t instr = (group << 15) | (bt << 8); if (group == 0 && bt == 0) // SWAB
continue;
for(int direction=0; direction<4; direction++) {
uint16_t instr = (group << 15) | (bt << 8);
for(int psw_val=0; psw_val<16; psw_val++) { if (direction & 2)
init_simh(); instr |= 62 + (direction & 1);
else
instr |= 218 + (direction & 1);
saved_PC = 0100; for(int psw_val=0; psw_val<16; psw_val++) {
init_simh();
randomize_registers_all_values(); saved_PC = 0100;
init_stack_registers(); randomize_registers_all_values();
struct mem_t mem[1] = { init_stack_registers();
{ 0100, instr }
};
PSW = psw_val; struct mem_t mem[1] = {
{ 0100, instr }
};
json_t *obj = generate_test(instr, id, mem, 1); PSW = psw_val;
if (obj)
json_array_append_new(target, obj); json_t *obj = generate_test(instr, id, mem, 1);
if (obj)
json_array_append_new(target, obj);
}
} }
} }
} }
@ -270,7 +279,7 @@ void produce_validation_tests()
emit_condition_sets(out, &id); emit_condition_sets(out, &id);
emit_add_sub(out, &id); // emit_add_sub(out, &id);
FILE *fh = fopen("testset.json", "w"); FILE *fh = fopen("testset.json", "w");
json_dumpf(out, fh, JSON_INDENT(2)); json_dumpf(out, fh, JSON_INDENT(2));