qemu-cr16/tests/tcg/cr16c/test11-branches.S
2026-05-04 14:31:19 +02:00

43 lines
572 B
ArmAsm

#include "macros.inc"
.global _start
.text
_start:
/* Initialize registers */
RESET
movd $0x4000, (sp)
begin:
/* todo: test all addressing modes here somehow */
// registers
// register pairs
// immediate
// relative (disp variants) modes
// absolute
// (uh oh) index
/** BAL **/
bal (ra), sub1
movw $0x1234, r1
movw $0x4242, r2
bal (ra), sub2
EXPECT 0x1234, r1
EXPECT 0x4242, r2
ENDING
FAIL_HANDLER
sub1:
jump (ra) /* should return */
FAIL
sub2:
PUSH $0x2, r1, ra
movw $-1, r1
movw $-1, r2
POPRET $0x2, r1, ra /* should return */
FAIL