/[qemu]/qemu/exec-all.h
ViewVC logotype

Diff of /qemu/exec-all.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.35 by bellard, Sun Aug 21 09:37:35 2005 UTC revision 1.36 by bellard, Sun Aug 21 15:19:36 2005 UTC
# Line 320  TranslationBlock *tb_find_pc(unsigned lo Line 320  TranslationBlock *tb_find_pc(unsigned lo
320  #define ASM_PREVIOUS_SECTION ".previous\n"  #define ASM_PREVIOUS_SECTION ".previous\n"
321  #endif  #endif
322    
323    #define ASM_OP_LABEL_NAME(n, opname) \
324        ASM_NAME(__op_label) #n "." ASM_NAME(opname)
325    
326  #if defined(__powerpc__)  #if defined(__powerpc__)
327    
328  /* we patch the jump instruction directly */  /* we patch the jump instruction directly */
329  #define GOTO_TB(opname, tbparam, n)\  #define GOTO_TB(opname, tbparam, n)\
330  do {\  do {\
331      asm volatile (ASM_DATA_SECTION\      asm volatile (ASM_DATA_SECTION\
332                    ASM_NAME(__op_label) #n "." ASM_NAME(opname) ":\n"\                    ASM_OP_LABEL_NAME(n, opname) ":\n"\
333                    ".long 1f\n"\                    ".long 1f\n"\
334                    ASM_PREVIOUS_SECTION \                    ASM_PREVIOUS_SECTION \
335                    "b " ASM_NAME(__op_jmp) #n "\n"\                    "b " ASM_NAME(__op_jmp) #n "\n"\
# Line 339  do {\ Line 342  do {\
342  #define GOTO_TB(opname, tbparam, n)\  #define GOTO_TB(opname, tbparam, n)\
343  do {\  do {\
344      asm volatile (".section .data\n"\      asm volatile (".section .data\n"\
345                    ASM_NAME(__op_label) #n "." ASM_NAME(opname) ":\n"\                    ASM_OP_LABEL_NAME(n, opname) ":\n"\
346                    ".long 1f\n"\                    ".long 1f\n"\
347                    ASM_PREVIOUS_SECTION \                    ASM_PREVIOUS_SECTION \
348                    "jmp " ASM_NAME(__op_jmp) #n "\n"\                    "jmp " ASM_NAME(__op_jmp) #n "\n"\
# Line 353  do {\ Line 356  do {\
356  #define GOTO_TB(opname, tbparam, n)\  #define GOTO_TB(opname, tbparam, n)\
357  do {\  do {\
358      static void __attribute__((unused)) *dummy ## n = &&dummy_label ## n;\      static void __attribute__((unused)) *dummy ## n = &&dummy_label ## n;\
359      static void __attribute__((unused)) *__op_label ## n = &&label ## n;\      static void __attribute__((unused)) *__op_label ## n \
360            __asm__(ASM_OP_LABEL_NAME(n, opname)) = &&label ## n;\
361      goto *(void *)(((TranslationBlock *)tbparam)->tb_next[n]);\      goto *(void *)(((TranslationBlock *)tbparam)->tb_next[n]);\
362  label ## n: ;\  label ## n: ;\
363  dummy_label ## n: ;\  dummy_label ## n: ;\

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26