mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
asm: Use .asciz and .ascii instead of .string
We use the .string pseudo-op both in some of our test assembly files and in our -Oasm output. We expect this to emit a \0 terminated string into the .o file. However for certain targets (e.g. HP PA-RISC) it doesn't include the \0. Use .asciz instead, which explicitly does what we want. There's also one place we can use .ascii (which explicitly emits a string *without* \0 termination) instead of multiple .byte directives. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
5eb5927d81
commit
ff3a30c115
6 changed files with 75 additions and 77 deletions
23
treesource.c
23
treesource.c
|
@ -124,27 +124,6 @@ static void write_propval_int(FILE *f, const char *p, size_t len, size_t width)
|
|||
}
|
||||
}
|
||||
|
||||
static bool has_data_type_information(struct marker *m)
|
||||
{
|
||||
return m->type >= TYPE_UINT8;
|
||||
}
|
||||
|
||||
static struct marker *next_type_marker(struct marker *m)
|
||||
{
|
||||
while (m && !has_data_type_information(m))
|
||||
m = m->next;
|
||||
return m;
|
||||
}
|
||||
|
||||
size_t type_marker_length(struct marker *m)
|
||||
{
|
||||
struct marker *next = next_type_marker(m->next);
|
||||
|
||||
if (next)
|
||||
return next->offset - m->offset;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *delim_start[] = {
|
||||
[TYPE_UINT8] = "[",
|
||||
[TYPE_UINT16] = "/bits/ 16 <",
|
||||
|
@ -230,7 +209,7 @@ static void write_propval(FILE *f, struct property *prop)
|
|||
size_t data_len = type_marker_length(m) ? : len - m->offset;
|
||||
const char *p = &prop->val.val[m->offset];
|
||||
|
||||
if (has_data_type_information(m)) {
|
||||
if (is_type_marker(m->type)) {
|
||||
emit_type = m->type;
|
||||
fprintf(f, " %s", delim_start[emit_type]);
|
||||
} else if (m->type == LABEL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue