]>
Commit | Line | Data |
---|---|---|
52dfa912 | 1 | diff -ur qemu-0.9.0-o/dyngen.c qemu-0.9.0/dyngen.c |
2 | --- qemu-0.9.0-o/dyngen.c 2007-02-06 14:44:57.000000000 -0700 | |
3 | +++ qemu-0.9.0/dyngen.c 2007-02-06 14:46:11.000000000 -0700 | |
4 | @@ -1692,6 +1692,9 @@ | |
5 | #else | |
6 | fprintf(outfile, " extern void %s();\n", name); | |
7 | #endif | |
8 | +#if defined(HOST_PPC) | |
9 | + uint8_t *blr_addr = NULL; | |
10 | +#endif | |
11 | ||
12 | for(i = 0, rel = relocs;i < nb_relocs; i++, rel++) { | |
13 | host_ulong offset = get_rel_offset(rel); | |
14 | @@ -2053,6 +2056,9 @@ | |
15 | #else | |
16 | #error unsupport object format | |
17 | #endif | |
18 | + if (blr_addr) | |
19 | + fprintf(outfile, " *(uint32_t *)(gen_code_ptr + %d) = 0x48000000 | %d;\n", | |
20 | + blr_addr - p_start, p_end - blr_addr); | |
21 | } | |
22 | #elif defined(HOST_S390) | |
23 | { | |
24 | diff -ur qemu-0.9.0-o/dyngen.c.orig qemu-0.9.0/dyngen.c.orig | |
25 | --- qemu-0.9.0-o/dyngen.c.orig 2007-02-05 16:01:54.000000000 -0700 | |
26 | +++ qemu-0.9.0/dyngen.c.orig 2007-02-06 14:44:57.000000000 -0700 | |
27 | @@ -1206,13 +1206,11 @@ | |
28 | } else if (strstart(sym_name, "__op_gen_label", &p)) { | |
29 | snprintf(name, name_size, "gen_labels[param%s]", p); | |
30 | } else { | |
31 | -#ifdef HOST_SPARC | |
32 | if (sym_name[0] == '.') | |
33 | snprintf(name, name_size, | |
34 | "(long)(&__dot_%s)", | |
35 | sym_name + 1); | |
36 | else | |
37 | -#endif | |
38 | snprintf(name, name_size, "(long)(&%s)", sym_name); | |
39 | } | |
40 | } | |
41 | @@ -1706,14 +1704,12 @@ | |
42 | !strstart(sym_name, "__op_param", NULL) && | |
43 | !strstart(sym_name, "__op_jmp", NULL) && | |
44 | !strstart(sym_name, "__op_gen_label", NULL)) { | |
45 | -#if defined(HOST_SPARC) | |
46 | if (sym_name[0] == '.') { | |
47 | fprintf(outfile, | |
48 | "extern char __dot_%s __asm__(\"%s\");\n", | |
49 | sym_name+1, sym_name); | |
50 | continue; | |
51 | } | |
52 | -#endif | |
53 | #if defined(__APPLE__) | |
54 | /* set __attribute((unused)) on darwin because we wan't to avoid warning when we don't use the symbol */ | |
55 | fprintf(outfile, "extern char %s __attribute__((unused));\n", sym_name); | |
56 | Only in qemu-0.9.0: dyngen.c.rej |