From cf855ea282db0cb2d26cf2567f3779875eb4cdc4 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 26 Oct 1989 11:01:44 +0000 Subject: [PATCH] fixed so that jumps back to local labels also work --- mach/sun3/ce/EM_table | 3 +++ mach/sun3/ce/as_table | 33 ++++++++++++++++++++++----------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/mach/sun3/ce/EM_table b/mach/sun3/ce/EM_table index 05ad6cdfb..97d19600b 100644 --- a/mach/sun3/ce/EM_table +++ b/mach/sun3/ce/EM_table @@ -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)+"; diff --git a/mach/sun3/ce/as_table b/mach/sun3/ce/as_table index 0f45b0659..ea8923678 100644 --- a/mach/sun3/ce/as_table +++ b/mach/sun3/ce/as_table @@ -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). -- 2.34.1