Add SHIFT with numeric argument

Fixes #442.
This commit is contained in:
ISSOtm
2020-02-11 11:25:22 +01:00
parent 3b2c862320
commit 001b95d12a
4 changed files with 29 additions and 0 deletions

View File

@@ -777,6 +777,12 @@ warn : T_POP_WARN string { warning(WARNING_USER, "%s", $2); }
; ;
shift : T_POP_SHIFT { sym_ShiftCurrentMacroArgs(); } shift : T_POP_SHIFT { sym_ShiftCurrentMacroArgs(); }
| T_POP_SHIFT uconst
{
int32_t i = $2;
while (i--)
sym_ShiftCurrentMacroArgs();
}
; ;
load : T_POP_LOAD string comma sectiontype sectorg sectattrs load : T_POP_LOAD string comma sectiontype sectorg sectattrs

21
test/asm/arg-shift.asm Normal file
View File

@@ -0,0 +1,21 @@
print_all: MACRO
REPT _NARG
PRINTT " \1"
SHIFT
ENDR
PRINTT "\n"
ENDM
print_some: MACRO
PRINTT "\1"
SHIFT 5
PRINTT "\2\6\9"
SHIFT 17
SHIFT
PRINTT "\3\9"
ENDM
print_all This test, probably, passes\,, but who knows, ?
print_some R,e,d,n,e,x,G,a,m,e,B,o,y,D,e,v,e,l,o,p,e,m,e,n,t,S,y,s,t,e,m,\n

0
test/asm/arg-shift.err Normal file
View File

2
test/asm/arg-shift.out Normal file
View File

@@ -0,0 +1,2 @@
This test probably passes, but who knows ?
RGBDS