mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-29 16:38:05 +08:00
Thu Dec 3 14:20:03 1998 Dave Brolley <brolley@cygnus.com>
* sim/fr30/ld.cgs: Implement more loads. * sim/fr30/call.cgs: New testcase. * sim/fr30/testutils.inc (testr_h_dr): New macro. (set_s_user,set_s_system): New macros.
This commit is contained in:
36
sim/testsuite/sim/fr30/call.cgs
Normal file
36
sim/testsuite/sim/fr30/call.cgs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# fr30 testcase for call @$Ri
|
||||||
|
# mach(): fr30
|
||||||
|
|
||||||
|
.include "testutils.inc"
|
||||||
|
|
||||||
|
START
|
||||||
|
|
||||||
|
.text
|
||||||
|
.global call
|
||||||
|
|
||||||
|
; Test call $Ri
|
||||||
|
mvi_h_gr #func1,r0
|
||||||
|
set_cc 0x0f ; condition codes shouldn't change
|
||||||
|
call1:
|
||||||
|
call @r0
|
||||||
|
fail
|
||||||
|
func1:
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
mvi_h_gr #call1,r7
|
||||||
|
inci_h_gr 2,r7
|
||||||
|
testr_h_dr r7,rp
|
||||||
|
|
||||||
|
mvi_h_gr #func2,r0
|
||||||
|
set_cc 0x0f ; condition codes shouldn't change
|
||||||
|
call2:
|
||||||
|
call:d @r0
|
||||||
|
ldi:8 1,r0 ; Must assume this works
|
||||||
|
fail
|
||||||
|
func2:
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
mvi_h_gr #call2,r7
|
||||||
|
inci_h_gr 4,r7
|
||||||
|
testr_h_dr r7,rp
|
||||||
|
testr_h_gr 1,r0
|
||||||
|
|
||||||
|
pass
|
@ -5,6 +5,7 @@
|
|||||||
# ld @($R14,$disp10),$Ri
|
# ld @($R14,$disp10),$Ri
|
||||||
# ld @($R15,$udisp6),$Ri
|
# ld @($R15,$udisp6),$Ri
|
||||||
# ld @$R15+,$Ri
|
# ld @$R15+,$Ri
|
||||||
|
# ld @$R15+,$Rs
|
||||||
|
|
||||||
.include "testutils.inc"
|
.include "testutils.inc"
|
||||||
|
|
||||||
@ -143,16 +144,77 @@ ld:
|
|||||||
inci_h_gr 4,r9 ; original stack pointer + 4
|
inci_h_gr 4,r9 ; original stack pointer + 4
|
||||||
mvi_h_mem #0xdeadbeef,sp ; prime memory
|
mvi_h_mem #0xdeadbeef,sp ; prime memory
|
||||||
|
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
set_cc 0x0f ; condition codes should not change
|
set_cc 0x0f ; condition codes should not change
|
||||||
ld @r15+,r7
|
ld @r15+,r7
|
||||||
test_cc 1 1 1 1
|
test_cc 1 1 1 1
|
||||||
test_h_gr 0xdeadbeef,r7
|
test_h_gr 0xdeadbeef,r7
|
||||||
testr_h_gr sp,r9 ; should have been incremented
|
testr_h_gr sp,r9 ; should have been incremented
|
||||||
|
|
||||||
mvr_h_gr r8,sp ; save original stack pointer
|
; Test ld @$R15+,$Rs
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,tbr
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,tbr
|
||||||
|
testr_h_gr sp,r9 ; should have been incremented
|
||||||
|
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,rp
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,rp
|
||||||
|
testr_h_gr sp,r9 ; should have been incremented
|
||||||
|
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,mdh
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,mdh
|
||||||
|
testr_h_gr sp,r9 ; should have been incremented
|
||||||
|
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,mdl
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,mdl
|
||||||
|
testr_h_gr sp,r9 ; should have been incremented
|
||||||
|
|
||||||
|
; Failing tests moved to the bottom
|
||||||
|
set_s_user
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,ssp
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,ssp
|
||||||
|
testr_h_gr sp,r9 ; should have been incremented
|
||||||
|
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,usp
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,usp
|
||||||
|
test_h_gr 0xdeadbeef,sp ; should not have been incremented
|
||||||
|
|
||||||
|
set_s_system
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,usp
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,usp
|
||||||
|
testr_h_gr sp,r9 ; should have been incremented
|
||||||
|
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
|
ld @r15+,ssp
|
||||||
|
test_cc 1 1 1 1
|
||||||
|
test_h_dr 0xdeadbeef,ssp
|
||||||
|
test_h_gr 0xdeadbeef,sp ; should not have been incremented
|
||||||
|
|
||||||
|
mvr_h_gr r8,sp ; restore original stack pointer
|
||||||
|
set_cc 0x0f ; condition codes should not change
|
||||||
ld @r15+,sp
|
ld @r15+,sp
|
||||||
test_cc 1 1 1 1
|
test_cc 1 1 1 1
|
||||||
test_h_gr 0xdeadbeef,sp
|
test_h_gr 0xdeadbeef,sp ; should not have been incremented
|
||||||
testr_h_gr sp,r8 ; should not have been incremented
|
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
@ -108,6 +108,12 @@ testr_gr\@:
|
|||||||
test_h_gr \val r5
|
test_h_gr \val r5
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
; Test the value of an general register against a dedicated register
|
||||||
|
.macro testr_h_dr gr dr
|
||||||
|
mov \dr,r5
|
||||||
|
testr_h_gr \gr r5
|
||||||
|
.endm
|
||||||
|
|
||||||
; Compare an immediate with word in memory
|
; Compare an immediate with word in memory
|
||||||
.macro test_h_mem val addr
|
.macro test_h_mem val addr
|
||||||
ldmem_h_gr \addr r5
|
ldmem_h_gr \addr r5
|
||||||
@ -120,6 +126,15 @@ testr_gr\@:
|
|||||||
orccr \mask
|
orccr \mask
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
; Set the stack mode
|
||||||
|
.macro set_s_user
|
||||||
|
orccr 0x10
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro set_s_system
|
||||||
|
andccr 0xef
|
||||||
|
.endm
|
||||||
|
|
||||||
; Test the condition codes
|
; Test the condition codes
|
||||||
.macro test_cc N Z V C
|
.macro test_cc N Z V C
|
||||||
.if (\N == 1)
|
.if (\N == 1)
|
||||||
|
Reference in New Issue
Block a user