1
0
mirror of https://github.com/wfjm/w11.git synced 2026-04-29 05:16:20 +00:00
Files
wfjm.w11/tools/asm-11/tests/test_0110_op_gg.mac
wfjm 1f7cf00c35 asm-11: BUGFIX '100(pc)' was compiled as '100'
- asm-11: do pc-relative offset calculation correctly
- tools/asm-11/tests:
  - test_0100_op_g, test_0110_op_gg: add test cases for this bug
  - test_0140_op_o.mac: add value checks

Closes #32
2022-07-29 08:34:23 +02:00

87 lines
3.2 KiB
Plaintext

; $Id: test_0110_op_gg.mac 1262 2022-07-25 09:44:55Z mueller $
; SPDX-License-Identifier: GPL-3.0-or-later
; Copyright 2013-2022 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
; test opcodes with two general operands
;
.asect
.blkw 400
a: .word 0 ;;!! 001000: 000000
b: .word 0 ;;!! 001002: 000000
pa: .word a ;;!! 001004: 001000
pb: .word b ;;!! 001006: 001002
const = 400
; all src modes to reg dst
p1:
add r1,r0 ;;!! 060100
add @r2,r0 ;;!! 061200
add (r3),r0 ;;!! 061300
add (r4)+,r0 ;;!! 062400
add @(r5)+,r0 ;;!! 063500
add -(r1),r0 ;;!! 064100
add @-(r2),r0 ;;!! 065200
add 1234(r3),r0 ;;!! 066300 001234
add @1234(r4),r0 ;;!! 067400 001234
add a,r0 ;;!! 066700 177736
add @pa,r0 ;;!! 067700 177736
add @#a,r0 ;;!! 063700 001000
add #const,r0 ;;!! 062700 000400
; all reg src to all dst modes
p2:
add r0,r1 ;;!! 060001
add r0,@r2 ;;!! 060012
add r0,(r3) ;;!! 060013
add r0,(r4)+ ;;!! 060024
add r0,@(r5)+ ;;!! 060035
add r0,-(r1) ;;!! 060041
add r0,@-(r2) ;;!! 060052
add r0,1234(r3) ;;!! 060063 001234
add r0,@1234(r4) ;;!! 060074 001234
add r0,a ;;!! 060067 177670
add r0,@pa ;;!! 060077 177670
add r0,@#a ;;!! 060037 001000
; pc relative addressing
c: .word 0 ;;!! 001120: 000000
d: .word 0 ;;!! 001122: 000000
add c,d ;;!! 001124: 066767 177770 177770
add f,e ;;!! 001132: 066767 000004 000000
e: .word 0 ;;!! 001140: 000000
f: .word 0 ;;!! 001142: 000000
; some mixed cases
p3:
add r1,@r2 ;;!! 060112
add (r3),(r4)+ ;;!! 061324
add @(r5)+,-(r1) ;;!! 063541
add @-(r2),1234(r3) ;;!! 065263 001234
add @1234(r4),a ;;!! 067467 001234 177614
add @pa,@#a ;;!! 067737 177614 001000
add #1000,b ;;!! 062767 001000 177602
; all 'gg' type opcodes, random modes
p4:
mov @r2,(r3) ;;!! 011213
cmp (r4)+,@(r5)+ ;;!! 022435
bit -(r1),@-(r2) ;;!! 034152
bic 1234(r3),@1234(r4) ;;!! 046374 001234 001234
bis a,@pa ;;!! 056777 177560 177562
movb @#a,(r3) ;;!! 113713 001000
cmpb @(r5)+,@-(r2) ;;!! 123552
bitb @1234(r4),@pa ;;!! 137477 001234 177546
bicb -(r1),1234(r3) ;;!! 144163 001234
bisb a,@#b ;;!! 156737 177532 001002
; explicit pc offset addressing
p5: add 100(pc),r0 ;;!! 066700 000100
add @100(pc),r0 ;;!! 067700 000100
add r0,100(pc) ;;!! 060067 000100
add r0,@100(pc) ;;!! 060077 000100
.end