constant string as an assembly operand

Hello all,

how can one can describe a constant string as an operand in the assembly instruction?

for example imagine this instruction:

xyz 14 ABC

where “xyz” is the operator, 14 is an immediate value, and because of assembly dialect, there should be a constant string with the value of ABC follow the immediate value. How is this possible?

What should be the dat describing the instruction?

string asm = “xyz $val ABC”
dag iops = (ins i8imm:val, … )

Cheers,

ES

Hello all,

how can one can describe a constant string as an operand in the assembly
instruction?

for example imagine this instruction:

xyz 14 ABC

where "xyz" is the operator, 14 is an immediate value, and because of
assembly dialect, there should be a constant string with the value of ABC
follow the immediate value. How is this possible?

What should be the dat describing the instruction?

string asm = "xyz $val ABC"

Can this be an arbitrary string or will it always be ABC? If it's the later,
then what you've posted above should work for the asm string.

-Tom

Hi Tom,

Thanks.

It should be always ABC.

What should be the iops? just (ins i8imm:$val)? what would be the placeholder for a constant string in “ins”?

Hi Tom,

Thanks.
It should be always ABC.
What should be the iops? just (ins i8imm:$val)? what would be the
placeholder for a constant string in "ins"?

You shouldn't need to add anything to ins for this.

-Tom

I found the problem. In my asm parser, it could not distinguish between AsmKind::String and AsmKind::Identifier.

My solution: I made a register class with a member with the name of the constant string.