x86-64-asm: Accept expressions for .quad

The x86-64 target has 64bit relocs, and hence can accept
generic expressions for '.quad'.
This commit is contained in:
Michael Matz
2016-06-29 19:22:07 +02:00
parent 253afeed1e
commit ff5561ff7d
4 changed files with 14 additions and 1 deletions

View File

@ -407,6 +407,10 @@ static void asm_parse_directive(TCCState *s1)
ind += size;
break;
case TOK_ASMDIR_quad:
#ifdef TCC_TARGET_X86_64
size = 8;
goto asm_data;
#else
next();
for(;;) {
uint64_t vl;
@ -433,6 +437,7 @@ static void asm_parse_directive(TCCState *s1)
next();
}
break;
#endif
case TOK_ASMDIR_byte:
size = 1;
goto asm_data;
@ -451,6 +456,10 @@ static void asm_parse_directive(TCCState *s1)
if (sec->sh_type != SHT_NOBITS) {
if (size == 4) {
gen_expr32(&e);
#ifdef TCC_TARGET_X86_64
} else if (size == 8) {
gen_expr64(&e);
#endif
} else {
if (e.sym)
expect("constant");