fixed so that jumps back to local labels also work

This commit is contained in:
ceriel 1989-10-26 11:01:44 +00:00
parent ed479cbb76
commit cf855ea282
2 changed files with 25 additions and 11 deletions

View file

@ -106,6 +106,9 @@ C_sti
"move.w d0, (a0)".
$1 == 4 ==> "move.l (sp)+, a0";
"move.l (sp)+, (a0)".
$1 == 8 ==> "move.l (sp)+, a0";
"move.l (sp)+, (a0)+";
"move.l (sp)+, (a0)".
$1 % 4 == 0 ==> "move.l (sp)+, a0";
"move.l #$1/4, d0";
"1:move.l (sp)+, (a0)+";

View file

@ -28,37 +28,48 @@ asr_l cnt:QUICK, dst:D_REG ==> @text2( %d( 0xe080 | (cnt->val << 9) |
... cnt:D_REG, dst:D_REG ==> @text2( %d( 0xe0a0 | (cnt->reg << 9) |
dst->reg)).
bcc dst:LOC_LBL ==> @text2( 0x6400 | %dist( dst->lbl)).
bcc dst:LOC_LBL ==> @text1(0x64);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x64ff);
code_dist4( dst).
bcs dst:LOC_LBL ==> @text2( 0x6500 | %dist( dst->lbl)).
bcs dst:LOC_LBL ==> @text1( 0x65);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x65ff);
code_dist4( dst).
beq dst:LOC_LBL ==> @text2( 0x6700 | %dist( dst->lbl)).
beq dst:LOC_LBL ==> @text1( 0x67);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x67ff);
code_dist4( dst).
bge dst:LOC_LBL ==> @text2( 0x6c00 | %dist( dst->lbl)).
bge dst:LOC_LBL ==> @text1( 0x6c);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x6cff);
code_dist4( dst).
bgt dst:LOC_LBL ==> @text2( 0x6e00 | %dist( dst->lbl)).
bgt dst:LOC_LBL ==> @text1( 0x6e);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x6eff);
code_dist4( dst).
ble dst:LOC_LBL ==> @text2( 0x6f00 | %dist( dst->lbl)).
ble dst:LOC_LBL ==> @text1( 0x6f);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x6fff);
code_dist4( dst).
bls dst:LOC_LBL ==> @text2( 0x6300 | %dist( dst->lbl)).
bls dst:LOC_LBL ==> @text1( 0x63);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x63ff);
code_dist4( dst).
blt dst:LOC_LBL ==> @text2( 0x6d00 | %dist( dst->lbl)).
blt dst:LOC_LBL ==> @text1( 0x6d);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x6dff);
code_dist4( dst).
bmi dst:LOC_LBL ==> @text2( 0x6b00 | %dist( dst->lbl)).
bmi dst:LOC_LBL ==> @text1( 0x6b);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x6bff);
code_dist4( dst).
bne dst:LOC_LBL ==> @text2( 0x6600 | %dist( dst->lbl)).
bne dst:LOC_LBL ==> @text1( 0x66);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x66ff);
code_dist4( dst).
bra dst:LOC_LBL ==> @text2( 0x6000 | %dist( dst->lbl)).
bra dst:LOC_LBL ==> @text1( 0x60);
@text1(%dist( dst->lbl)).
... dst:GLOB_LBL ==> @text2( 0x60ff);
code_dist4( dst).