diff options
Diffstat (limited to 'sim/testsuite/d10v-elf/t-macros.i')
-rw-r--r-- | sim/testsuite/d10v-elf/t-macros.i | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/sim/testsuite/d10v-elf/t-macros.i b/sim/testsuite/d10v-elf/t-macros.i deleted file mode 100644 index f424acfa57b..00000000000 --- a/sim/testsuite/d10v-elf/t-macros.i +++ /dev/null @@ -1,233 +0,0 @@ - .macro start - .text - .align 2 - .globl _start -_start: - ldi r0, 0 - .endm - - - .macro exit47 - ldi r4, 1 - ldi r0, 47 - trap 15 - .endm - - - .macro exit0 - ldi r4, 1 - ldi r0, 0 - trap 15 - .endm - - - .macro exit1 - ldi r4, 1 - ldi r0, 1 - trap 15 - .endm - - - .macro exit2 - ldi r4, 1 - ldi r0, 2 - trap 15 - .endm - - - .macro load reg val - ldi \reg, #\val - .endm - - - .macro load2w reg hi lo - ld2w \reg, @(1f,r0) - .data - .align 2 -1: .short \hi - .short \lo - .text - .endm - - - .macro check exit reg val - cmpeqi \reg, #\val - brf0t 1f -0: ldi r4, 1 - ldi r0, \exit - trap 15 -1: - .endm - - - .macro check2w2 exit reg hi lo - st2w \reg, @(1f,r0) - ld r2, @(1f, r0) - cmpeqi r2, #\hi - brf0f 0f - ld r2, @(1f + 2, r0) - cmpeqi r2, #\lo - brf0f 0f - bra 2f -0: ldi r4, 1 - ldi r0, \exit - trap 15 - .data - .align 2 -1: .long 0 - .text -2: - .endm - - - .macro loadacc2 acc guard hi lo - ldi r2, #\lo - mvtaclo r2, \acc - ldi r2, #\hi - mvtachi r2, \acc - ldi r2, #\guard - mvtacg r2, \acc - .endm - - - .macro checkacc2 exit acc guard hi lo - ldi r2, #\guard - mvfacg r3, \acc - cmpeq r2, r3 - brf0f 0f - ldi r2, #\hi - mvfachi r3, \acc - cmpeq r2, r3 - brf0f 0f - ldi r2, #\lo - mvfaclo r3, \acc - cmpeq r2, r3 - brf0f 0f - bra 4f -0: ldi r4, 1 - ldi r0, \exit - trap 15 -4: - .endm - - - .macro loadpsw2 val - ldi r2, #\val - mvtc r2, cr0 - .endm - - - .macro checkpsw2 exit val - mvfc r2, cr0 - cmpeqi r2, #\val - brf0t 1f - ldi r4, 1 - ldi r0, \exit - trap 15 -1: - .endm - - - .macro hello - ;; 4:write (1, string, strlen (string)) - ldi r4, 4 - ldi r0, 1 - ldi r1, 1f - ldi r2, 2f-1f-1 - trap 15 - .section .rodata -1: .string "Hello World!\n" -2: .align 2 - .text - .endm - - -;;; Blat our DMAP registers so that they point at on-chip imem - .macro point_dmap_at_imem - .text - ldi r2, MAP_INSN | 0xf - st r2, @(DMAP_REG,r0) - ldi r2, MAP_INSN - st r2, @(IMAP1_REG,r0) - .endm - -;;; Patch VEC so that it jumps back to code that checks PSW -;;; and then exits with success. - .macro check_interrupt vec psw src -;;; Patch the interrupt vector's AE entry with a jmp to success - .text - ldi r4, #1f - ldi r5, \vec - ;; - ld2w r2, @(0,r4) - st2w r2, @(0,r5) - ld2w r2, @(4,r4) - st2w r2, @(4,r5) - ;; - bra 9f - nop -;;; Code that gets patched into the interrupt vector - .data -1: ldi r1, 2f@word - jmp r1 -;;; Successfull trap jumps back to here - .text -;;; Verify the PSW -2: mvfc r2, cr0 - cmpeqi r2, #\psw - brf0t 3f - nop - exit1 -;;; Verify the original addr -3: mvfc r2, bpc - cmpeqi r2, #\src@word - brf0t 4f - exit2 -4: exit0 -;;; continue as normal -9: - .endm - - - PSW_SM = 0x8000 - PSW_01 = 0x4000 - PSW_EA = 0x2000 - PSW_DB = 0x1000 - PSW_DM = 0x0800 - PSW_IE = 0x0400 - PSW_RP = 0x0200 - PSW_MD = 0x0100 - PSW_FX = 0x0080 - PSW_ST = 0x0040 - PSW_10 = 0x0020 - PSW_11 = 0x0010 - PSW_F0 = 0x0008 - PSW_F1 = 0x0004 - PSW_14 = 0x0002 - PSW_C = 0x0001 - - -;;; - - DMAP_MASK = 0x3fff - DMAP_BASE = 0x8000 - DMAP_REG = 0xff04 - - IMAP0_REG = 0xff00 - IMAP1_REG = 0xff02 - - MAP_INSN = 0x1000 - -;;; - - VEC_RI = 0x3ff00 - VEC_BAE = 0x3ff04 - VEC_RIE = 0x3ff08 - VEC_AE = 0x3ff0c - VEC_TRAP = 0x3ff10 - VEC_DBT = 0x3ff50 - VEC_SDBT = 0x3fff4 - VEC_DBI = 0x3ff58 - VEC_EI = 0x3ff5c - - |