Changeset a52e2f4 in mainline


Ignore:
Timestamp:
2016-04-23T20:27:28Z (8 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0407636
Parents:
27f67f5
Message:

sparc64: use asmtool.h macros for defining symbols

Files:
15 edited
4 moved

Legend:

Unmodified
Added
Removed
  • boot/arch/sparc64/src/asm.S

    r27f67f5 ra52e2f4  
    2828#
    2929
     30#include <abi/asmtool.h>
    3031#include <arch/arch.h>
    3132
     
    4243.register %g7, #scratch
    4344
    44 .global start
    45 .global halt
    46 .global jump_to_kernel
    47 
    4845.section BOOTSTRAP, "ax"
    4946
    50 start:
     47SYMBOL(start)
    5148        ba %xcc, 1f
    5249        nop
     
    9693.text
    9794
    98 halt:
     95FUNCTION_BEGIN(halt)
    9996        ba %xcc, halt
    10097        nop
     98FUNCTION_END(halt)
    10199
    102 jump_to_kernel:
     100FUNCTION_BEGIN(jump_to_kernel)
    103101        /*
    104102         * Guarantee cache coherence:
     
    133131        jmp %o3
    134132        nop
     133FUNCTION_END(jump_to_kernel)
    135134
    136135# Flush I-cache
     
    158157#endif  /* PROCESSOR_us || PROCESSOR_us3 */
    159158
    160 .global ofw
    161 ofw:
     159FUNCTION_BEGIN(ofw)
    162160        save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE), %sp
    163161        set ofw_cif, %l0
     
    175173        ret
    176174        restore %o0, 0, %o0
     175FUNCTION_END(ofw)
  • kernel/arch/sparc64/Makefile.inc

    r27f67f5 ra52e2f4  
    6666        arch/$(KARCH)/src/context.S \
    6767        arch/$(KARCH)/src/fpu_context.c \
    68         arch/$(KARCH)/src/dummy.s \
     68        arch/$(KARCH)/src/dummy.S \
    6969        arch/$(KARCH)/src/mm/$(USARCH)/km.c \
    7070        arch/$(KARCH)/src/mm/$(USARCH)/as.c \
  • kernel/arch/sparc64/src/asm.S

    r27f67f5 ra52e2f4  
    2727 */
    2828
     29#include <abi/asmtool.h>
    2930#include <arch/arch.h>
    3031#include <arch/stack.h>
     
    3839 * Almost the same as memcpy() except the loads are from userspace.
    3940 */
    40 .global memcpy_from_uspace
    41 memcpy_from_uspace:
     41FUNCTION_BEGIN(memcpy_from_uspace)
    4242        mov %o0, %o3  /* save dst */
    4343        add %o1, 7, %g1
     
    108108                jmp %o7 + 8  /* exit point */
    109109                mov %o3, %o0
     110FUNCTION_END(memcpy_from_uspace)
    110111
    111112/*
    112113 * Almost the same as memcpy() except the stores are to userspace.
    113114 */
    114 .global memcpy_to_uspace
    115 memcpy_to_uspace:
     115FUNCTION_BEGIN(memcpy_to_uspace)
    116116        mov %o0, %o3  /* save dst */
    117117        add %o1, 7, %g1
     
    182182                jmp     %o7 + 8  /* exit point */
    183183                mov     %o3, %o0
     184FUNCTION_END(memcpy_to_uspace)
    184185
    185 .global memcpy_from_uspace_failover_address
    186 .global memcpy_to_uspace_failover_address
    187 memcpy_from_uspace_failover_address:
    188 memcpy_to_uspace_failover_address:
     186SYMBOL(memcpy_from_uspace_failover_address)
     187SYMBOL(memcpy_to_uspace_failover_address)
    189188        jmp %o7 + 8   /* exit point */
    190189        mov %g0, %o0  /* return 0 on failure */
    191190
    192 .global early_putchar
    193 early_putchar:
     191FUNCTION_BEGIN(early_putchar)
    194192        retl
    195193        nop
     194FUNCTION_END(early_putchar)
  • kernel/arch/sparc64/src/context.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
    2930#include <arch/context_struct.h>
    3031#include <arch/arch.h>
     
    3334.text   
    3435
    35 .global context_save_arch
    36 .global context_restore_arch
    37 
    3836/*
    3937 * context_save_arch() is required not to create its own stack frame. See the
    4038 * generic context.h for explanation.
    4139 */
    42 context_save_arch:
     40FUNCTION_BEGIN(context_save_arch)
    4341        #
    4442        # Force all our active register windows to memory so that we can find
     
    6765        retl
    6866        mov 1, %o0              ! context_save_arch returns 1
     67FUNCTION_END(context_save_arch)
    6968
    70 context_restore_arch:
     69FUNCTION_BEGIN(context_restore_arch)
    7170        #
    7271        # Forget all previous windows, they are not going to be needed again.
     
    106105        retl
    107106        xor %o0, %o0, %o0       ! context_restore_arch returns 0
     107FUNCTION_END(context_restore_arch)
  • kernel/arch/sparc64/src/debug/stacktrace_asm.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
    2930#include <arch/stack.h>
    3031
    3132.text
    3233
    33 .global frame_pointer_get
    34 .global program_counter_get
    35 .global alloc_window_and_flush
    36 
    37 frame_pointer_get:
     34FUNCTION_BEGIN(frame_pointer_get)
    3835        # Add the stack bias to %sp to get the actual address.
    3936        retl
    4037        add %sp, STACK_BIAS, %o0
     38FUNCTION_END(frame_pointer_get)
    4139
    42 program_counter_get:
     40FUNCTION_BEGIN(program_counter_get)
    4341        retl
    4442        mov %o7, %o0
     43FUNCTION_END(program_counter_get)
    4544
    46 alloc_window_and_flush:
     45FUNCTION_BEGIN(alloc_window_and_flush)
    4746        save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE+STACK_ARG_SAVE_AREA_SIZE), %sp
    4847        # Flush all other windows to memory so that we can read their contents.
     
    5049        ret
    5150        restore
     51FUNCTION_END(alloc_window_and_flush)
    5252
  • kernel/arch/sparc64/src/dummy.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
     30
    2931.text
    3032
    31 .global cpu_sleep
    32 .global sys_tls_set
    33 
    34 .global dummy
    35 
    36 cpu_sleep:              ! not supported by architecture
    37 sys_tls_set:            ! not needed on architecture
    38 
    39 dummy:
     33FUNCTION_BEGIN(cpu_sleep)
     34FUNCTION_BEGIN(sys_tls_set)
    4035        retl
    4136        nop
     37FUNCTION_END(cpu_sleep)
     38FUNCTION_END(sys_tls_set)
    4239
    43 .global cpu_halt
    44 cpu_halt:
     40FUNCTION_BEGIN(cpu_halt)
    4541        ba %xcc, cpu_halt
    4642        nop
     43FUNCTION_END(cpu_halt)
     44
  • kernel/arch/sparc64/src/sun4u/asm.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
    2930#include <arch/arch.h>
    3031#include <arch/stack.h>
     
    5556.endm
    5657
    57 .global write_to_ag_g6
    58 write_to_ag_g6:
     58FUNCTION_BEGIN(write_to_ag_g6)
    5959        WRITE_ALTERNATE_REGISTER %g6, PSTATE_AG_BIT
     60FUNCTION_END(write_to_ag_g6)
    6061
    61 .global write_to_ag_g7
    62 write_to_ag_g7:
     62FUNCTION_BEGIN(write_to_ag_g7)
    6363        WRITE_ALTERNATE_REGISTER %g7, PSTATE_AG_BIT
     64FUNCTION_END(write_to_ag_g7)
    6465
    65 .global write_to_ig_g6
    66 write_to_ig_g6:
     66FUNCTION_BEGIN(write_to_ig_g6)
    6767        WRITE_ALTERNATE_REGISTER %g6, PSTATE_IG_BIT
     68FUNCTION_END(write_to_ig_g6)
    6869
    69 .global read_from_ag_g6
    70 read_from_ag_g6:
     70FUNCTION_BEGIN(read_from_ag_g6)
    7171        READ_ALTERNATE_REGISTER %g6, PSTATE_AG_BIT
     72FUNCTION_END(read_from_ag_g6)
    7273
    73 .global read_from_ag_g7
    74 read_from_ag_g7:
     74FUNCTION_BEGIN(read_from_ag_g7)
    7575        READ_ALTERNATE_REGISTER %g7, PSTATE_AG_BIT
     76FUNCTION_END(read_from_ag_g7)
    7677
    7778/** Switch to userspace.
     
    8182 * %o2  Userspace address of uarg structure.
    8283 */
    83 .global switch_to_userspace
    84 switch_to_userspace:
     84FUNCTION_BEGIN(switch_to_userspace)
    8585        save %o1, -(STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE), %sp
    8686        flushw
     
    119119       
    120120        done                            ! jump to userspace
     121FUNCTION_END(switch_to_userspace)
    121122
  • kernel/arch/sparc64/src/sun4u/start.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
     30
    2931#include <arch/arch.h>
    3032#include <arch/cpu.h>
     
    7678 */
    7779
    78 .global kernel_image_start
    79 kernel_image_start:
     80SYMBOL(kernel_image_start)
    8081        mov BSP_FLAG, %l0
    8182        and %o0, %l0, %l7                       ! l7 <= bootstrap processor?
     
    396397
    397398.align 8
    398 .global physmem_base            ! copy of the physical memory base address
    399 physmem_base:
     399SYMBOL(physmem_base)    ! copy of the physical memory base address
    400400        .quad 0
    401401
     
    405405 * are meant to stay together, aligned on a 32B boundary.
    406406 */
    407 .global fast_data_access_mmu_miss_data_hi
    408 .global end_of_identity
    409 .global kernel_8k_tlb_data_template
    410 .global tlb_tag_access_context_mask
    411407
    412408.align 32
     
    414410 * This label is used by the fast_data_access_MMU_miss trap handler.
    415411 */
    416 fast_data_access_mmu_miss_data_hi:
     412SYMBOL(fast_data_access_mmu_miss_data_hi)
    417413/*
    418414 * This variable is used by the fast_data_access_MMU_miss trap handler.
     
    420416 * memory.
    421417 */
    422 end_of_identity:
     418SYMBOL(end_of_identity)
    423419        .quad -1
    424420/*
     
    427423 * physical memory.
    428424 */
    429 kernel_8k_tlb_data_template:
     425SYMBOL(kernel_8k_tlb_data_template)
    430426#ifdef CONFIG_VIRT_IDX_DCACHE
    431427        .quad ((1 << TTE_V_SHIFT) | (PAGESIZE_8K << TTE_SIZE_SHIFT) | TTE_CP | \
     
    440436 * It allows us to save one precious instruction slot of this handler.
    441437 */
    442 tlb_tag_access_context_mask:
     438SYMBOL(tlb_tag_access_context_mask)
    443439        .quad TLB_TAG_ACCESS_CONTEXT_MASK
    444440
  • kernel/arch/sparc64/src/sun4v/asm.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
    2930#include <arch/mm/mmu.h>
    3031#include <arch/regdef.h>
     
    3940 * %o2  Userspace address of uarg structure.
    4041 */
    41 .global switch_to_userspace
    42 switch_to_userspace:
     42FUNCTION_BEGIN(switch_to_userspace)
    4343        save %o1, -(STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE), %sp
    4444        flushw
     
    7575        wrpr %g0, WSTATE_OTHER(0) | WSTATE_NORMAL(1), %wstate
    7676        done                            ! jump to userspace
     77FUNCTION_END(switch_to_userspace)
  • kernel/arch/sparc64/src/sun4v/start.S

    r27f67f5 ra52e2f4  
    2828#
    2929
     30#include <abi/asmtool.h>
    3031#include <arch/arch.h>
    3132#include <arch/stack.h>
     
    106107 *
    107108 */
    108 .global kernel_image_start
    109 kernel_image_start:
     109SYMBOL(kernel_image_start)
    110110        mov BSP_FLAG, %l0
    111111        and %o0, %l0, %l7                       ! l7 <= bootstrap processor?
     
    310310
    311311.align 8
    312 .global temp_cpu_mondo_handler
    313 temp_cpu_mondo_handler:
     312SYMBOL(temp_cpu_mondo_handler)
    314313
    315314        set 0x3c, %o0
     
    341340
    342341.align 8
    343 .global physmem_base            ! copy of the physical memory base address
    344 physmem_base:
     342SYMBOL(physmem_base)    ! copy of the physical memory base address
    345343        .quad 0
    346344
     
    350348 * memory.
    351349 */
    352 .global end_of_identity
    353 end_of_identity:
     350SYMBOL(end_of_identity)
    354351        .quad -1
    355352
    356 .global kernel_8k_tlb_data_template
    357 kernel_8k_tlb_data_template:
     353SYMBOL(kernel_8k_tlb_data_template)
    358354        .quad 0
    359355
    360356/* MMU fault status areas for all CPUs */
    361357.align MMU_FSA_ALIGNMENT
    362 .global mmu_fsas
    363 mmu_fsas:
     358SYMBOL(mmu_fsas)
    364359        .space (MMU_FSA_SIZE * MAX_NUM_STRANDS)
  • kernel/arch/sparc64/src/trap/sun4u/trap_table.S

    r27f67f5 ra52e2f4  
    3737.text
    3838
     39#include <abi/asmtool.h>
    3940#include <arch/trap/trap_table.h>
    4041#include <arch/trap/regwin.h>
     
    5556 */
    5657.align TABLE_SIZE
    57 .global trap_table
    58 trap_table:
     58SYMBOL(trap_table)
    5959
    6060/* TT = 0x08, TL = 0, instruction_access_exception */
    6161.org trap_table + TT_INSTRUCTION_ACCESS_EXCEPTION*ENTRY_SIZE
    62 .global instruction_access_exception_tl0
    63 instruction_access_exception_tl0:
     62SYMBOL(instruction_access_exception_tl0)
    6463        wrpr %g0, PSTATE_AG_BIT | PSTATE_PRIV_BIT, %pstate
    6564        mov TT_INSTRUCTION_ACCESS_EXCEPTION, %g2
     
    6968/* TT = 0x0a, TL = 0, instruction_access_error */
    7069.org trap_table + TT_INSTRUCTION_ACCESS_ERROR*ENTRY_SIZE
    71 .global instruction_access_error_tl0
    72 instruction_access_error_tl0:
     70SYMBOL(instruction_access_error_tl0)
    7371        mov TT_INSTRUCTION_ACCESS_ERROR, %g2
    7472        clr %g5
     
    7775/* TT = 0x10, TL = 0, illegal_instruction */
    7876.org trap_table + TT_ILLEGAL_INSTRUCTION*ENTRY_SIZE
    79 .global illegal_instruction_tl0
    80 illegal_instruction_tl0:
     77SYMBOL(illegal_instruction_tl0)
    8178        mov TT_ILLEGAL_INSTRUCTION, %g2
    8279        clr %g5
     
    8582/* TT = 0x11, TL = 0, privileged_opcode */
    8683.org trap_table + TT_PRIVILEGED_OPCODE*ENTRY_SIZE
    87 .global privileged_opcode_tl0
    88 privileged_opcode_tl0:
     84SYMBOL(privileged_opcode_tl0)
    8985        mov TT_PRIVILEGED_OPCODE, %g2
    9086        clr %g5
     
    9389/* TT = 0x12, TL = 0, unimplemented_LDD */
    9490.org trap_table + TT_UNIMPLEMENTED_LDD*ENTRY_SIZE
    95 .global unimplemented_LDD_tl0
    96 unimplemented_LDD_tl0:
     91SYMBOL(unimplemented_LDD_tl0)
    9792        mov TT_UNIMPLEMENTED_LDD, %g2
    9893        clr %g5
     
    10196/* TT = 0x13, TL = 0, unimplemented_STD */
    10297.org trap_table + TT_UNIMPLEMENTED_STD*ENTRY_SIZE
    103 .global unimplemented_STD_tl0
    104 unimplemented_STD_tl0:
     98SYMBOL(unimplemented_STD_tl0)
    10599        mov TT_UNIMPLEMENTED_STD, %g2
    106100        clr %g5
     
    109103/* TT = 0x20, TL = 0, fb_disabled handler */
    110104.org trap_table + TT_FP_DISABLED*ENTRY_SIZE
    111 .global fb_disabled_tl0
    112 fp_disabled_tl0:
     105SYMBOL(fp_disabled_tl0)
    113106        mov TT_FP_DISABLED, %g2
    114107        clr %g5
     
    117110/* TT = 0x21, TL = 0, fb_exception_ieee_754 handler */
    118111.org trap_table + TT_FP_EXCEPTION_IEEE_754*ENTRY_SIZE
    119 .global fb_exception_ieee_754_tl0
    120 fp_exception_ieee_754_tl0:
     112SYMBOL(fp_exception_ieee_754_tl0)
    121113        mov TT_FP_EXCEPTION_IEEE_754, %g2
    122114        clr %g5
     
    125117/* TT = 0x22, TL = 0, fb_exception_other handler */
    126118.org trap_table + TT_FP_EXCEPTION_OTHER*ENTRY_SIZE
    127 .global fb_exception_other_tl0
    128 fp_exception_other_tl0:
     119SYMBOL(fp_exception_other_tl0)
    129120        mov TT_FP_EXCEPTION_OTHER, %g2
    130121        clr %g5
     
    133124/* TT = 0x23, TL = 0, tag_overflow */
    134125.org trap_table + TT_TAG_OVERFLOW*ENTRY_SIZE
    135 .global tag_overflow_tl0
    136 tag_overflow_tl0:
     126SYMBOL(tag_overflow_tl0)
    137127        mov TT_TAG_OVERFLOW, %g2
    138128        clr %g5
     
    141131/* TT = 0x24, TL = 0, clean_window handler */
    142132.org trap_table + TT_CLEAN_WINDOW*ENTRY_SIZE
    143 .global clean_window_tl0
    144 clean_window_tl0:
     133SYMBOL(clean_window_tl0)
    145134        CLEAN_WINDOW_HANDLER
    146135
    147136/* TT = 0x28, TL = 0, division_by_zero */
    148137.org trap_table + TT_DIVISION_BY_ZERO*ENTRY_SIZE
    149 .global division_by_zero_tl0
    150 division_by_zero_tl0:
     138SYMBOL(division_by_zero_tl0)
    151139        mov TT_DIVISION_BY_ZERO, %g2
    152140        clr %g5
     
    155143/* TT = 0x30, TL = 0, data_access_exception */
    156144.org trap_table + TT_DATA_ACCESS_EXCEPTION*ENTRY_SIZE
    157 .global data_access_exception_tl0
    158 data_access_exception_tl0:
     145SYMBOL(data_access_exception_tl0)
    159146        wrpr %g0, PSTATE_AG_BIT | PSTATE_PRIV_BIT, %pstate
    160147        mov TT_DATA_ACCESS_EXCEPTION, %g2
     
    164151/* TT = 0x32, TL = 0, data_access_error */
    165152.org trap_table + TT_DATA_ACCESS_ERROR*ENTRY_SIZE
    166 .global data_access_error_tl0
    167 data_access_error_tl0:
     153SYMBOL(data_access_error_tl0)
    168154        mov TT_DATA_ACCESS_ERROR, %g2
    169155        clr %g5
     
    172158/* TT = 0x34, TL = 0, mem_address_not_aligned */
    173159.org trap_table + TT_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    174 .global mem_address_not_aligned_tl0
    175 mem_address_not_aligned_tl0:
     160SYMBOL(mem_address_not_aligned_tl0)
    176161        mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2
    177162        clr %g5
     
    180165/* TT = 0x35, TL = 0, LDDF_mem_address_not_aligned */
    181166.org trap_table + TT_LDDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    182 .global LDDF_mem_address_not_aligned_tl0
    183 LDDF_mem_address_not_aligned_tl0:
     167SYMBOL(LDDF_mem_address_not_aligned_tl0)
    184168        mov TT_LDDF_MEM_ADDRESS_NOT_ALIGNED, %g2
    185169        clr %g5
     
    188172/* TT = 0x36, TL = 0, STDF_mem_address_not_aligned */
    189173.org trap_table + TT_STDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    190 .global STDF_mem_address_not_aligned_tl0
    191 STDF_mem_address_not_aligned_tl0:
     174SYMBOL(STDF_mem_address_not_aligned_tl0)
    192175        mov TT_STDF_MEM_ADDRESS_NOT_ALIGNED, %g2
    193176        clr %g5
     
    196179/* TT = 0x37, TL = 0, privileged_action */
    197180.org trap_table + TT_PRIVILEGED_ACTION*ENTRY_SIZE
    198 .global privileged_action_tl0
    199 privileged_action_tl0:
     181SYMBOL(privileged_action_tl0)
    200182        mov TT_PRIVILEGED_ACTION, %g2
    201183        clr %g5
     
    204186/* TT = 0x38, TL = 0, LDQF_mem_address_not_aligned */
    205187.org trap_table + TT_LDQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    206 .global LDQF_mem_address_not_aligned_tl0
    207 LDQF_mem_address_not_aligned_tl0:
     188SYMBOL(LDQF_mem_address_not_aligned_tl0)
    208189        mov TT_LDQF_MEM_ADDRESS_NOT_ALIGNED, %g2
    209190        clr %g5
     
    212193/* TT = 0x39, TL = 0, STQF_mem_address_not_aligned */
    213194.org trap_table + TT_STQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    214 .global STQF_mem_address_not_aligned_tl0
    215 STQF_mem_address_not_aligned_tl0:
     195SYMBOL(STQF_mem_address_not_aligned_tl0)
    216196        mov TT_STQF_MEM_ADDRESS_NOT_ALIGNED, %g2
    217197        clr %g5
     
    220200/* TT = 0x41, TL = 0, interrupt_level_1 handler */
    221201.org trap_table + TT_INTERRUPT_LEVEL_1*ENTRY_SIZE
    222 .global interrupt_level_1_handler_tl0
    223 interrupt_level_1_handler_tl0:
     202SYMBOL(interrupt_level_1_handler_tl0)
    224203        mov TT_INTERRUPT_LEVEL_1, %g2
    225204        clr %g5
     
    228207/* TT = 0x42, TL = 0, interrupt_level_2 handler */
    229208.org trap_table + TT_INTERRUPT_LEVEL_2*ENTRY_SIZE
    230 .global interrupt_level_2_handler_tl0
    231 interrupt_level_2_handler_tl0:
     209SYMBOL(interrupt_level_2_handler_tl0)
    232210        mov TT_INTERRUPT_LEVEL_2, %g2
    233211        clr %g5
     
    236214/* TT = 0x43, TL = 0, interrupt_level_3 handler */
    237215.org trap_table + TT_INTERRUPT_LEVEL_3*ENTRY_SIZE
    238 .global interrupt_level_3_handler_tl0
    239 interrupt_level_3_handler_tl0:
     216SYMBOL(interrupt_level_3_handler_tl0)
    240217        mov TT_INTERRUPT_LEVEL_3, %g2
    241218        clr %g5
     
    244221/* TT = 0x44, TL = 0, interrupt_level_4 handler */
    245222.org trap_table + TT_INTERRUPT_LEVEL_4*ENTRY_SIZE
    246 .global interrupt_level_4_handler_tl0
    247 interrupt_level_4_handler_tl0:
     223SYMBOL(interrupt_level_4_handler_tl0)
    248224        mov TT_INTERRUPT_LEVEL_4, %g2
    249225        clr %g5
     
    252228/* TT = 0x45, TL = 0, interrupt_level_5 handler */
    253229.org trap_table + TT_INTERRUPT_LEVEL_5*ENTRY_SIZE
    254 .global interrupt_level_5_handler_tl0
    255 interrupt_level_5_handler_tl0:
     230SYMBOL(interrupt_level_5_handler_tl0)
    256231        mov TT_INTERRUPT_LEVEL_5, %g2
    257232        clr %g5
     
    260235/* TT = 0x46, TL = 0, interrupt_level_6 handler */
    261236.org trap_table + TT_INTERRUPT_LEVEL_6*ENTRY_SIZE
    262 .global interrupt_level_6_handler_tl0
    263 interrupt_level_6_handler_tl0:
     237SYMBOL(interrupt_level_6_handler_tl0)
    264238        mov TT_INTERRUPT_LEVEL_6, %g2
    265239        clr %g5
     
    268242/* TT = 0x47, TL = 0, interrupt_level_7 handler */
    269243.org trap_table + TT_INTERRUPT_LEVEL_7*ENTRY_SIZE
    270 .global interrupt_level_7_handler_tl0
    271 interrupt_level_7_handler_tl0:
     244SYMBOL(interrupt_level_7_handler_tl0)
    272245        mov TT_INTERRUPT_LEVEL_7, %g2
    273246        clr %g5
     
    276249/* TT = 0x48, TL = 0, interrupt_level_8 handler */
    277250.org trap_table + TT_INTERRUPT_LEVEL_8*ENTRY_SIZE
    278 .global interrupt_level_8_handler_tl0
    279 interrupt_level_8_handler_tl0:
     251SYMBOL(interrupt_level_8_handler_tl0)
    280252        mov TT_INTERRUPT_LEVEL_8, %g2
    281253        clr %g5
     
    284256/* TT = 0x49, TL = 0, interrupt_level_9 handler */
    285257.org trap_table + TT_INTERRUPT_LEVEL_9*ENTRY_SIZE
    286 .global interrupt_level_9_handler_tl0
    287 interrupt_level_9_handler_tl0:
     258SYMBOL(interrupt_level_9_handler_tl0)
    288259        mov TT_INTERRUPT_LEVEL_9, %g2
    289260        clr %g5
     
    292263/* TT = 0x4a, TL = 0, interrupt_level_10 handler */
    293264.org trap_table + TT_INTERRUPT_LEVEL_10*ENTRY_SIZE
    294 .global interrupt_level_10_handler_tl0
    295 interrupt_level_10_handler_tl0:
     265SYMBOL(interrupt_level_10_handler_tl0)
    296266        mov TT_INTERRUPT_LEVEL_10, %g2
    297267        clr %g5
     
    300270/* TT = 0x4b, TL = 0, interrupt_level_11 handler */
    301271.org trap_table + TT_INTERRUPT_LEVEL_11*ENTRY_SIZE
    302 .global interrupt_level_11_handler_tl0
    303 interrupt_level_11_handler_tl0:
     272SYMBOL(interrupt_level_11_handler_tl0)
    304273        mov TT_INTERRUPT_LEVEL_11, %g2
    305274        clr %g5
     
    308277/* TT = 0x4c, TL = 0, interrupt_level_12 handler */
    309278.org trap_table + TT_INTERRUPT_LEVEL_12*ENTRY_SIZE
    310 .global interrupt_level_12_handler_tl0
    311 interrupt_level_12_handler_tl0:
     279SYMBOL(interrupt_level_12_handler_tl0)
    312280        mov TT_INTERRUPT_LEVEL_12, %g2
    313281        clr %g5
     
    316284/* TT = 0x4d, TL = 0, interrupt_level_13 handler */
    317285.org trap_table + TT_INTERRUPT_LEVEL_13*ENTRY_SIZE
    318 .global interrupt_level_13_handler_tl0
    319 interrupt_level_13_handler_tl0:
     286SYMBOL(interrupt_level_13_handler_tl0)
    320287        mov TT_INTERRUPT_LEVEL_13, %g2
    321288        clr %g5
     
    324291/* TT = 0x4e, TL = 0, interrupt_level_14 handler */
    325292.org trap_table + TT_INTERRUPT_LEVEL_14*ENTRY_SIZE
    326 .global interrupt_level_14_handler_tl0
    327 interrupt_level_14_handler_tl0:
     293SYMBOL(interrupt_level_14_handler_tl0)
    328294        mov TT_INTERRUPT_LEVEL_14, %g2
    329295        clr %g5
     
    332298/* TT = 0x4f, TL = 0, interrupt_level_15 handler */
    333299.org trap_table + TT_INTERRUPT_LEVEL_15*ENTRY_SIZE
    334 .global interrupt_level_15_handler_tl0
    335 interrupt_level_15_handler_tl0:
     300SYMBOL(interrupt_level_15_handler_tl0)
    336301        mov TT_INTERRUPT_LEVEL_15, %g2
    337302        clr %g5
     
    340305/* TT = 0x60, TL = 0, interrupt_vector_trap handler */
    341306.org trap_table + TT_INTERRUPT_VECTOR_TRAP*ENTRY_SIZE
    342 .global interrupt_vector_trap_handler_tl0
    343 interrupt_vector_trap_handler_tl0:
     307SYMBOL(interrupt_vector_trap_handler_tl0)
    344308        mov TT_INTERRUPT_VECTOR_TRAP, %g2
    345309        clr %g5
     
    348312/* TT = 0x64, TL = 0, fast_instruction_access_MMU_miss */
    349313.org trap_table + TT_FAST_INSTRUCTION_ACCESS_MMU_MISS*ENTRY_SIZE
    350 .global fast_instruction_access_mmu_miss_handler_tl0
    351 fast_instruction_access_mmu_miss_handler_tl0:
     314SYMBOL(fast_instruction_access_mmu_miss_handler_tl0)
    352315        FAST_INSTRUCTION_ACCESS_MMU_MISS_HANDLER
    353316
    354317/* TT = 0x68, TL = 0, fast_data_access_MMU_miss */
    355318.org trap_table + TT_FAST_DATA_ACCESS_MMU_MISS*ENTRY_SIZE
    356 .global fast_data_access_mmu_miss_handler_tl0
    357 fast_data_access_mmu_miss_handler_tl0:
     319SYMBOL(fast_data_access_mmu_miss_handler_tl0)
    358320        FAST_DATA_ACCESS_MMU_MISS_HANDLER 0
    359321
    360322/* TT = 0x6c, TL = 0, fast_data_access_protection */
    361323.org trap_table + TT_FAST_DATA_ACCESS_PROTECTION*ENTRY_SIZE
    362 .global fast_data_access_protection_handler_tl0
    363 fast_data_access_protection_handler_tl0:
     324SYMBOL(fast_data_access_protection_handler_tl0)
    364325        FAST_DATA_ACCESS_PROTECTION_HANDLER 0
    365326
    366327/* TT = 0x80, TL = 0, spill_0_normal handler */
    367328.org trap_table + TT_SPILL_0_NORMAL*ENTRY_SIZE
    368 .global spill_0_normal_tl0
    369 spill_0_normal_tl0:
     329SYMBOL(spill_0_normal_tl0)
    370330        SPILL_NORMAL_HANDLER_KERNEL
    371331
    372332/* TT = 0x84, TL = 0, spill_1_normal handler */
    373333.org trap_table + TT_SPILL_1_NORMAL*ENTRY_SIZE
    374 .global spill_1_normal_tl0
    375 spill_1_normal_tl0:
     334SYMBOL(spill_1_normal_tl0)
    376335        SPILL_NORMAL_HANDLER_USERSPACE
    377336
    378337/* TT = 0x88, TL = 0, spill_2_normal handler */
    379338.org trap_table + TT_SPILL_2_NORMAL*ENTRY_SIZE
    380 .global spill_2_normal_tl0
    381 spill_2_normal_tl0:
     339SYMBOL(spill_2_normal_tl0)
    382340        SPILL_TO_USPACE_WINDOW_BUFFER
    383341
    384342/* TT = 0xa0, TL = 0, spill_0_other handler */
    385343.org trap_table + TT_SPILL_0_OTHER*ENTRY_SIZE
    386 .global spill_0_other_tl0
    387 spill_0_other_tl0:
     344SYMBOL(spill_0_other_tl0)
    388345        SPILL_TO_USPACE_WINDOW_BUFFER
    389346
    390347/* TT = 0xc0, TL = 0, fill_0_normal handler */
    391348.org trap_table + TT_FILL_0_NORMAL*ENTRY_SIZE
    392 .global fill_0_normal_tl0
    393 fill_0_normal_tl0:
     349SYMBOL(fill_0_normal_tl0)
    394350        FILL_NORMAL_HANDLER_KERNEL
    395351
    396352/* TT = 0xc4, TL = 0, fill_1_normal handler */
    397353.org trap_table + TT_FILL_1_NORMAL*ENTRY_SIZE
    398 .global fill_1_normal_tl0
    399 fill_1_normal_tl0:
     354SYMBOL(fill_1_normal_tl0)
    400355        FILL_NORMAL_HANDLER_USERSPACE
    401356
     
    410365    127
    411366.org trap_table + (TT_TRAP_INSTRUCTION_0+\cur)*ENTRY_SIZE
    412 .global trap_instruction_\cur\()_tl0
    413 trap_instruction_\cur\()_tl0:
     367SYMBOL(trap_instruction_\cur\()_tl0)
    414368        mov \cur, %g2
    415369        ba %xcc, trap_instruction_handler
     
    423377/* TT = 0x08, TL > 0, instruction_access_exception */
    424378.org trap_table + (TT_INSTRUCTION_ACCESS_EXCEPTION+512)*ENTRY_SIZE
    425 .global instruction_access_exception_tl1
    426 instruction_access_exception_tl1:
     379SYMBOL(instruction_access_exception_tl1)
    427380        wrpr %g0, 1, %tl
    428381        wrpr %g0, PSTATE_AG_BIT | PSTATE_PRIV_BIT, %pstate
     
    433386/* TT = 0x0a, TL > 0, instruction_access_error */
    434387.org trap_table + (TT_INSTRUCTION_ACCESS_ERROR+512)*ENTRY_SIZE
    435 .global instruction_access_error_tl1
    436 instruction_access_error_tl1:
     388SYMBOL(instruction_access_error_tl1)
    437389        wrpr %g0, 1, %tl
    438390        mov TT_INSTRUCTION_ACCESS_ERROR, %g2
     
    442394/* TT = 0x10, TL > 0, illegal_instruction */
    443395.org trap_table + (TT_ILLEGAL_INSTRUCTION+512)*ENTRY_SIZE
    444 .global illegal_instruction_tl1
    445 illegal_instruction_tl1:
     396SYMBOL(illegal_instruction_tl1)
    446397        wrpr %g0, 1, %tl
    447398        mov TT_ILLEGAL_INSTRUCTION, %g2
     
    451402/* TT = 0x24, TL > 0, clean_window handler */
    452403.org trap_table + (TT_CLEAN_WINDOW+512)*ENTRY_SIZE
    453 .global clean_window_tl1
    454 clean_window_tl1:
     404SYMBOL(clean_window_tl1)
    455405        CLEAN_WINDOW_HANDLER
    456406
    457407/* TT = 0x28, TL > 0, division_by_zero */
    458408.org trap_table + (TT_DIVISION_BY_ZERO+512)*ENTRY_SIZE
    459 .global division_by_zero_tl1
    460 division_by_zero_tl1:
     409SYMBOL(division_by_zero_tl1)
    461410        wrpr %g0, 1, %tl
    462411        mov TT_DIVISION_BY_ZERO, %g2
     
    466415/* TT = 0x30, TL > 0, data_access_exception */
    467416.org trap_table + (TT_DATA_ACCESS_EXCEPTION+512)*ENTRY_SIZE
    468 .global data_access_exception_tl1
    469 data_access_exception_tl1:
     417SYMBOL(data_access_exception_tl1)
    470418        wrpr %g0, 1, %tl
    471419        wrpr %g0, PSTATE_AG_BIT | PSTATE_PRIV_BIT, %pstate
     
    476424/* TT = 0x32, TL > 0, data_access_error */
    477425.org trap_table + (TT_DATA_ACCESS_ERROR+512)*ENTRY_SIZE
    478 .global data_access_error_tl1
    479 data_access_error_tl1:
     426SYMBOL(data_access_error_tl1)
    480427        wrpr %g0, 1, %tl
    481428        mov TT_DATA_ACCESS_ERROR, %g2
     
    485432/* TT = 0x34, TL > 0, mem_address_not_aligned */
    486433.org trap_table + (TT_MEM_ADDRESS_NOT_ALIGNED+512)*ENTRY_SIZE
    487 .global mem_address_not_aligned_tl1
    488 mem_address_not_aligned_tl1:
     434SYMBOL(mem_address_not_aligned_tl1)
    489435        wrpr %g0, 1, %tl
    490436        mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2
     
    494440/* TT = 0x68, TL > 0, fast_data_access_MMU_miss */
    495441.org trap_table + (TT_FAST_DATA_ACCESS_MMU_MISS+512)*ENTRY_SIZE
    496 .global fast_data_access_mmu_miss_handler_tl1
    497 fast_data_access_mmu_miss_handler_tl1:
     442SYMBOL(fast_data_access_mmu_miss_handler_tl1)
    498443        FAST_DATA_ACCESS_MMU_MISS_HANDLER 1
    499444
    500445/* TT = 0x6c, TL > 0, fast_data_access_protection */
    501446.org trap_table + (TT_FAST_DATA_ACCESS_PROTECTION+512)*ENTRY_SIZE
    502 .global fast_data_access_protection_handler_tl1
    503 fast_data_access_protection_handler_tl1:
     447SYMBOL(fast_data_access_protection_handler_tl1)
    504448        FAST_DATA_ACCESS_PROTECTION_HANDLER 1
    505449
    506450/* TT = 0x80, TL > 0, spill_0_normal handler */
    507451.org trap_table + (TT_SPILL_0_NORMAL+512)*ENTRY_SIZE
    508 .global spill_0_normal_tl1
    509 spill_0_normal_tl1:
     452SYMBOL(spill_0_normal_tl1)
    510453        SPILL_NORMAL_HANDLER_KERNEL
    511454
    512455/* TT = 0x88, TL > 0, spill_2_normal handler */
    513456.org trap_table + (TT_SPILL_2_NORMAL+512)*ENTRY_SIZE
    514 .global spill_2_normal_tl1
    515 spill_2_normal_tl1:
     457SYMBOL(spill_2_normal_tl1)
    516458        SPILL_TO_USPACE_WINDOW_BUFFER
    517459
    518460/* TT = 0xa0, TL > 0, spill_0_other handler */
    519461.org trap_table + (TT_SPILL_0_OTHER+512)*ENTRY_SIZE
    520 .global spill_0_other_tl1
    521 spill_0_other_tl1:
     462SYMBOL(spill_0_other_tl1)
    522463        SPILL_TO_USPACE_WINDOW_BUFFER
    523464
    524465/* TT = 0xc0, TL > 0, fill_0_normal handler */
    525466.org trap_table + (TT_FILL_0_NORMAL+512)*ENTRY_SIZE
    526 .global fill_0_normal_tl1
    527 fill_0_normal_tl1:
     467SYMBOL(fill_0_normal_tl1)
    528468        FILL_NORMAL_HANDLER_KERNEL
    529469
     
    914854.endm
    915855
    916 .global preemptible_handler
    917 preemptible_handler:
     856SYMBOL(preemptible_handler)
    918857        PREEMPTIBLE_HANDLER_TEMPLATE 0
    919858
    920 .global trap_instruction_handler
    921 trap_instruction_handler:
     859SYMBOL(trap_instruction_handler)
    922860        PREEMPTIBLE_HANDLER_TEMPLATE 1
  • kernel/arch/sparc64/src/trap/sun4v/mmu.S

    r27f67f5 ra52e2f4  
    3737.text
    3838
     39#include <abi/asmtool.h>
    3940#include <arch/trap/sun4v/mmu.h>
    4041#include <arch/trap/trap_table.h>
     
    4849 *       %g1    virtual address that has caused the miss
    4950 */
    50 .global install_identity_mapping
    51 install_identity_mapping:
    52 
     51SYMBOL(install_identity_mapping)
    5352        /* output registers mustn't be clobbered during the hypercall, SAVE is too risky */
    5453        mov %o0, %g3
  • kernel/arch/sparc64/src/trap/sun4v/trap_table.S

    r27f67f5 ra52e2f4  
    3838.text
    3939
     40#include <abi/asmtool.h>
    4041#include <arch/trap/trap_table.h>
    4142#include <arch/trap/regwin.h>
     
    5859 */
    5960.align TABLE_SIZE
    60 .global trap_table
    61 trap_table:
     61SYMBOL(trap_table)
    6262
    6363/* TT = 0x08, TL = 0, instruction_access_exception */
    6464/* TT = 0x08, TL = 0, IAE_privilege_violation on UltraSPARC T2 */
    6565.org trap_table + TT_INSTRUCTION_ACCESS_EXCEPTION*ENTRY_SIZE
    66 .global instruction_access_exception_tl0
    67 instruction_access_exception_tl0:
     66SYMBOL(instruction_access_exception_tl0)
    6867        mov TT_INSTRUCTION_ACCESS_EXCEPTION, %g2
    6968        clr %g5
     
    7271/* TT = 0x09, TL = 0, instruction_access_mmu_miss */
    7372.org trap_table + TT_INSTRUCTION_ACCESS_MMU_MISS*ENTRY_SIZE
    74 .global instruction_access_mmu_miss_handler_tl0
     73SYMBOL(instruction_access_mmu_miss_handler_tl0)
    7574        ba,a %xcc, fast_instruction_access_mmu_miss_handler_tl0
    7675
    7776/* TT = 0x0a, TL = 0, instruction_access_error */
    7877.org trap_table + TT_INSTRUCTION_ACCESS_ERROR*ENTRY_SIZE
    79 .global instruction_access_error_tl0
    80 instruction_access_error_tl0:
     78SYMBOL(instruction_access_error_tl0)
    8179        mov TT_INSTRUCTION_ACCESS_ERROR, %g2
    8280        clr %g5
     
    8583/* TT = 0x0b, TL = 0, IAE_unauth_access */
    8684.org trap_table + TT_IAE_UNAUTH_ACCESS*ENTRY_SIZE
    87 .global iae_unauth_access_tl0
    88 iae_unauth_access_tl0:
     85SYMBOL(iae_unauth_access_tl0)
    8986        mov TT_IAE_UNAUTH_ACCESS, %g2
    9087        clr %g5
     
    9390/* TT = 0x0c, TL = 0, IAE_nfo_page */
    9491.org trap_table + TT_IAE_NFO_PAGE*ENTRY_SIZE
    95 .global iae_nfo_page_tl0
    96 iae_nfo_page_tl0:
     92SYMBOL(iae_nfo_page_tl0)
    9793        mov TT_IAE_NFO_PAGE, %g2
    9894        clr %g5
     
    10197/* TT = 0x10, TL = 0, illegal_instruction */
    10298.org trap_table + TT_ILLEGAL_INSTRUCTION*ENTRY_SIZE
    103 .global illegal_instruction_tl0
    104 illegal_instruction_tl0:
     99SYMBOL(illegal_instruction_tl0)
    105100        mov TT_ILLEGAL_INSTRUCTION, %g2
    106101        clr %g5
     
    109104/* TT = 0x11, TL = 0, privileged_opcode */
    110105.org trap_table + TT_PRIVILEGED_OPCODE*ENTRY_SIZE
    111 .global privileged_opcode_tl0
    112 privileged_opcode_tl0:
     106SYMBOL(privileged_opcode_tl0)
    113107        mov TT_PRIVILEGED_OPCODE, %g2
    114108        clr %g5
     
    117111/* TT = 0x12, TL = 0, unimplemented_LDD */
    118112.org trap_table + TT_UNIMPLEMENTED_LDD*ENTRY_SIZE
    119 .global unimplemented_LDD_tl0
    120 unimplemented_LDD_tl0:
     113SYMBOL(unimplemented_LDD_tl0)
    121114        mov TT_UNIMPLEMENTED_LDD, %g2
    122115        clr %g5
     
    125118/* TT = 0x13, TL = 0, unimplemented_STD */
    126119.org trap_table + TT_UNIMPLEMENTED_STD*ENTRY_SIZE
    127 .global unimplemented_STD_tl0
    128 unimplemented_STD_tl0:
     120SYMBOL(unimplemented_STD_tl0)
    129121        mov TT_UNIMPLEMENTED_STD, %g2
    130122        clr %g5
     
    133125/* TT = 0x14, TL = 0, DAE_invalid_asi */
    134126.org trap_table + TT_DAE_INVALID_ASI*ENTRY_SIZE
    135 .global dae_invalid_asi_tl0
    136 dae_invalid_asi_tl0:
     127SYMBOL(dae_invalid_asi_tl0)
    137128        mov TT_DAE_INVALID_ASI, %g2
    138129        clr %g5
     
    141132/* TT = 0x15, TL = 0, DAE_privilege_violation */
    142133.org trap_table + TT_DAE_PRIVILEGE_VIOLATION*ENTRY_SIZE
    143 .global dae_privilege_violation_tl0
    144 dae_privilege_violation_tl0:
     134SYMBOL(dae_privilege_violation_tl0)
    145135        mov TT_DAE_PRIVILEGE_VIOLATION, %g2
    146136        clr %g5
     
    149139/* TT = 0x16, TL = 0, DAE_nc_page */
    150140.org trap_table + TT_DAE_NC_PAGE*ENTRY_SIZE
    151 .global dae_nc_page_tl0
    152 dae_nc_page_tl0:
     141SYMBOL(dae_nc_page_tl0)
    153142        mov TT_DAE_NC_PAGE, %g2
    154143        clr %g5
     
    157146/* TT = 0x17, TL = 0, DAE_nfo_page */
    158147.org trap_table + TT_DAE_NFO_PAGE*ENTRY_SIZE
    159 .global dae_nfo_page_tl0
    160 dae_nfo_page_tl0:
     148SYMBOL(dae_nfo_page_tl0)
    161149        mov TT_DAE_NFO_PAGE, %g2
    162150        clr %g5
     
    165153/* TT = 0x20, TL = 0, fb_disabled handler */
    166154.org trap_table + TT_FP_DISABLED*ENTRY_SIZE
    167 .global fb_disabled_tl0
    168 fp_disabled_tl0:
     155SYMBOL(fp_disabled_tl0)
    169156        mov TT_FP_DISABLED, %g2
    170157        clr %g5
     
    173160/* TT = 0x21, TL = 0, fb_exception_ieee_754 handler */
    174161.org trap_table + TT_FP_EXCEPTION_IEEE_754*ENTRY_SIZE
    175 .global fb_exception_ieee_754_tl0
    176 fp_exception_ieee_754_tl0:
     162SYMBOL(fp_exception_ieee_754_tl0)
    177163        mov TT_FP_EXCEPTION_IEEE_754, %g2
    178164        clr %g5
     
    181167/* TT = 0x22, TL = 0, fb_exception_other handler */
    182168.org trap_table + TT_FP_EXCEPTION_OTHER*ENTRY_SIZE
    183 .global fb_exception_other_tl0
    184 fp_exception_other_tl0:
     169SYMBOL(fp_exception_other_tl)
    185170        mov TT_FP_EXCEPTION_OTHER, %g2
    186171        clr %g5
     
    189174/* TT = 0x23, TL = 0, tag_overflow */
    190175.org trap_table + TT_TAG_OVERFLOW*ENTRY_SIZE
    191 .global tag_overflow_tl0
    192 tag_overflow_tl0:
     176SYMBOL(tag_overflow_tl0)
    193177        mov TT_TAG_OVERFLOW, %g2
    194178        clr %g5
     
    197181/* TT = 0x24, TL = 0, clean_window handler */
    198182.org trap_table + TT_CLEAN_WINDOW*ENTRY_SIZE
    199 .global clean_window_tl0
    200 clean_window_tl0:
     183SYMBOL(clean_window_tl0)
    201184        CLEAN_WINDOW_HANDLER
    202185
    203186/* TT = 0x28, TL = 0, division_by_zero */
    204187.org trap_table + TT_DIVISION_BY_ZERO*ENTRY_SIZE
    205 .global division_by_zero_tl0
    206 division_by_zero_tl0:
     188SYMBOL(division_by_zero_tl0)
    207189        mov TT_DIVISION_BY_ZERO, %g2
    208190        clr %g5
     
    212194/* TT = 0x30, TL = 0, DAE_side_effect_page for UltraPSARC T2 */
    213195.org trap_table + TT_DATA_ACCESS_EXCEPTION*ENTRY_SIZE
    214 .global data_access_exception_tl0
    215 data_access_exception_tl0:
     196SYMBOL(data_access_exception_tl0)
    216197        mov TT_DATA_ACCESS_EXCEPTION, %g2
    217198        clr %g5
     
    220201/* TT = 0x31, TL = 0, data_access_mmu_miss */
    221202.org trap_table + TT_DATA_ACCESS_MMU_MISS*ENTRY_SIZE
    222 .global data_access_mmu_miss_tl0
    223 data_access_mmu_miss_tl0:
     203SYMBOL(data_access_mmu_miss_tl0)
    224204        ba,a %xcc, fast_data_access_mmu_miss_handler_tl0
    225205
    226206/* TT = 0x32, TL = 0, data_access_error */
    227207.org trap_table + TT_DATA_ACCESS_ERROR*ENTRY_SIZE
    228 .global data_access_error_tl0
    229 data_access_error_tl0:
     208SYMBOL(data_access_error_tl0)
    230209        mov TT_DATA_ACCESS_ERROR, %g2
    231210        clr %g5
     
    234213/* TT = 0x34, TL = 0, mem_address_not_aligned */
    235214.org trap_table + TT_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    236 .global mem_address_not_aligned_tl0
    237 mem_address_not_aligned_tl0:
     215SYMBOL(mem_address_not_aligned_tl0)
    238216        mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2
    239217        clr %g5
     
    242220/* TT = 0x35, TL = 0, LDDF_mem_address_not_aligned */
    243221.org trap_table + TT_LDDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    244 .global LDDF_mem_address_not_aligned_tl0
    245 LDDF_mem_address_not_aligned_tl0:
     222SYMBOL(LDDF_mem_address_not_aligned_tl0)
    246223        mov TT_LDDF_MEM_ADDRESS_NOT_ALIGNED, %g2
    247224        clr %g5
     
    250227/* TT = 0x36, TL = 0, STDF_mem_address_not_aligned */
    251228.org trap_table + TT_STDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    252 .global STDF_mem_address_not_aligned_tl0
    253 STDF_mem_address_not_aligned_tl0:
     229SYMBOL(STDF_mem_address_not_aligned_tl0)
    254230        mov TT_STDF_MEM_ADDRESS_NOT_ALIGNED, %g2
    255231        clr %g5
     
    258234/* TT = 0x37, TL = 0, privileged_action */
    259235.org trap_table + TT_PRIVILEGED_ACTION*ENTRY_SIZE
    260 .global privileged_action_tl0
    261 privileged_action_tl0:
     236SYMBOL(privileged_action_tl0)
    262237        mov TT_PRIVILEGED_ACTION, %g2
    263238        clr %g5
     
    266241/* TT = 0x38, TL = 0, LDQF_mem_address_not_aligned */
    267242.org trap_table + TT_LDQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    268 .global LDQF_mem_address_not_aligned_tl0
    269 LDQF_mem_address_not_aligned_tl0:
     243SYMBOL(LDQF_mem_address_not_aligned_tl0)
    270244        mov TT_LDQF_MEM_ADDRESS_NOT_ALIGNED, %g2
    271245        clr %g5
     
    274248/* TT = 0x39, TL = 0, STQF_mem_address_not_aligned */
    275249.org trap_table + TT_STQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE
    276 .global STQF_mem_address_not_aligned_tl0
    277 STQF_mem_address_not_aligned_tl0:
     250SYMBOL(STQF_mem_address_not_aligned_tl0)
    278251        mov TT_STQF_MEM_ADDRESS_NOT_ALIGNED, %g2
    279252        clr %g5
     
    282255/* TT = 0x41, TL = 0, interrupt_level_1 handler */
    283256.org trap_table + TT_INTERRUPT_LEVEL_1*ENTRY_SIZE
    284 .global interrupt_level_1_handler_tl0
    285 interrupt_level_1_handler_tl0:
     257SYMBOL(interrupt_level_1_handler_tl0)
    286258        mov TT_INTERRUPT_LEVEL_1, %g2
    287259        clr %g5
     
    290262/* TT = 0x42, TL = 0, interrupt_level_2 handler */
    291263.org trap_table + TT_INTERRUPT_LEVEL_2*ENTRY_SIZE
    292 .global interrupt_level_2_handler_tl0
    293 interrupt_level_2_handler_tl0:
     264SYMBOL(interrupt_level_2_handler_tl0)
    294265        mov TT_INTERRUPT_LEVEL_2, %g2
    295266        clr %g5
     
    298269/* TT = 0x43, TL = 0, interrupt_level_3 handler */
    299270.org trap_table + TT_INTERRUPT_LEVEL_3*ENTRY_SIZE
    300 .global interrupt_level_3_handler_tl0
    301 interrupt_level_3_handler_tl0:
     271SYMBOL(interrupt_level_3_handler_tl0)
    302272        mov TT_INTERRUPT_LEVEL_3, %g2
    303273        clr %g5
     
    306276/* TT = 0x44, TL = 0, interrupt_level_4 handler */
    307277.org trap_table + TT_INTERRUPT_LEVEL_4*ENTRY_SIZE
    308 .global interrupt_level_4_handler_tl0
    309 interrupt_level_4_handler_tl0:
     278SYMBOL(interrupt_level_4_handler_tl0)
    310279        mov TT_INTERRUPT_LEVEL_4, %g2
    311280        clr %g5
     
    314283/* TT = 0x45, TL = 0, interrupt_level_5 handler */
    315284.org trap_table + TT_INTERRUPT_LEVEL_5*ENTRY_SIZE
    316 .global interrupt_level_5_handler_tl0
    317 interrupt_level_5_handler_tl0:
     285SYMBOL(interrupt_level_5_handler_tl0)
    318286        mov TT_INTERRUPT_LEVEL_5, %g2
    319287        clr %g5
     
    322290/* TT = 0x46, TL = 0, interrupt_level_6 handler */
    323291.org trap_table + TT_INTERRUPT_LEVEL_6*ENTRY_SIZE
    324 .global interrupt_level_6_handler_tl0
    325 interrupt_level_6_handler_tl0:
     292SYMBOL(interrupt_level_6_handler_tl0)
    326293        mov TT_INTERRUPT_LEVEL_6, %g2
    327294        clr %g5
     
    330297/* TT = 0x47, TL = 0, interrupt_level_7 handler */
    331298.org trap_table + TT_INTERRUPT_LEVEL_7*ENTRY_SIZE
    332 .global interrupt_level_7_handler_tl0
    333 interrupt_level_7_handler_tl0:
     299SYMBOL(interrupt_level_7_handler_tl0)
    334300        mov TT_INTERRUPT_LEVEL_7, %g2
    335301        clr %g5
     
    338304/* TT = 0x48, TL = 0, interrupt_level_8 handler */
    339305.org trap_table + TT_INTERRUPT_LEVEL_8*ENTRY_SIZE
    340 .global interrupt_level_8_handler_tl0
    341 interrupt_level_8_handler_tl0:
     306SYMBOL(interrupt_level_8_handler_tl0)
    342307        mov TT_INTERRUPT_LEVEL_8, %g2
    343308        clr %g5
     
    346311/* TT = 0x49, TL = 0, interrupt_level_9 handler */
    347312.org trap_table + TT_INTERRUPT_LEVEL_9*ENTRY_SIZE
    348 .global interrupt_level_9_handler_tl0
    349 interrupt_level_9_handler_tl0:
     313SYMBOL(interrupt_level_9_handler_tl0)
    350314        mov TT_INTERRUPT_LEVEL_9, %g2
    351315        clr %g5
     
    354318/* TT = 0x4a, TL = 0, interrupt_level_10 handler */
    355319.org trap_table + TT_INTERRUPT_LEVEL_10*ENTRY_SIZE
    356 .global interrupt_level_10_handler_tl0
    357 interrupt_level_10_handler_tl0:
     320SYMBOL(interrupt_level_10_handler_tl0)
    358321        mov TT_INTERRUPT_LEVEL_10, %g2
    359322        clr %g5
     
    362325/* TT = 0x4b, TL = 0, interrupt_level_11 handler */
    363326.org trap_table + TT_INTERRUPT_LEVEL_11*ENTRY_SIZE
    364 .global interrupt_level_11_handler_tl0
    365 interrupt_level_11_handler_tl0:
     327SYMBOL(interrupt_level_11_handler_tl0)
    366328        mov TT_INTERRUPT_LEVEL_11, %g2
    367329        clr %g5
     
    370332/* TT = 0x4c, TL = 0, interrupt_level_12 handler */
    371333.org trap_table + TT_INTERRUPT_LEVEL_12*ENTRY_SIZE
    372 .global interrupt_level_12_handler_tl0
    373 interrupt_level_12_handler_tl0:
     334SYMBOL(interrupt_level_12_handler_tl0)
    374335        mov TT_INTERRUPT_LEVEL_12, %g2
    375336        clr %g5
     
    378339/* TT = 0x4d, TL = 0, interrupt_level_13 handler */
    379340.org trap_table + TT_INTERRUPT_LEVEL_13*ENTRY_SIZE
    380 .global interrupt_level_13_handler_tl0
    381 interrupt_level_13_handler_tl0:
     341SYMBOL(interrupt_level_13_handler_tl0)
    382342        mov TT_INTERRUPT_LEVEL_13, %g2
    383343        clr %g5
     
    386346/* TT = 0x4e, TL = 0, interrupt_level_14 handler */
    387347.org trap_table + TT_INTERRUPT_LEVEL_14*ENTRY_SIZE
    388 .global interrupt_level_14_handler_tl0
    389 interrupt_level_14_handler_tl0:
     348SYMBOL(interrupt_level_14_handler_tl0)
    390349        mov TT_INTERRUPT_LEVEL_14, %g2
    391350        clr %g5
     
    394353/* TT = 0x4f, TL = 0, interrupt_level_15 handler */
    395354.org trap_table + TT_INTERRUPT_LEVEL_15*ENTRY_SIZE
    396 .global interrupt_level_15_handler_tl0
    397 interrupt_level_15_handler_tl0:
     355SYMBOL(interrupt_level_15_handler_tl0)
    398356        mov TT_INTERRUPT_LEVEL_15, %g2
    399357        clr %g5
     
    402360/* TT = 0x64, TL = 0, fast_instruction_access_MMU_miss */
    403361.org trap_table + TT_FAST_INSTRUCTION_ACCESS_MMU_MISS*ENTRY_SIZE
    404 .global fast_instruction_access_mmu_miss_handler_tl0
    405 fast_instruction_access_mmu_miss_handler_tl0:
     362SYMBOL(fast_instruction_access_mmu_miss_handler_tl0)
    406363        FAST_INSTRUCTION_ACCESS_MMU_MISS_HANDLER
    407364
    408365/* TT = 0x68, TL = 0, fast_data_access_MMU_miss */
    409366.org trap_table + TT_FAST_DATA_ACCESS_MMU_MISS*ENTRY_SIZE
    410 .global fast_data_access_mmu_miss_handler_tl0
    411 fast_data_access_mmu_miss_handler_tl0:
     367SYMBOL(fast_data_access_mmu_miss_handler_tl0)
    412368        FAST_DATA_ACCESS_MMU_MISS_HANDLER 0
    413369
    414370/* TT = 0x6c, TL = 0, fast_data_access_protection */
    415371.org trap_table + TT_FAST_DATA_ACCESS_PROTECTION*ENTRY_SIZE
    416 .global fast_data_access_protection_handler_tl0
    417 fast_data_access_protection_handler_tl0:
     372SYMBOL(fast_data_access_protection_handler_tl0)
    418373        FAST_DATA_ACCESS_PROTECTION_HANDLER 0
    419374
    420375/* TT = 0x7c, TL = 0, cpu_mondo */
    421376.org trap_table + TT_CPU_MONDO*ENTRY_SIZE
    422 .global cpu_mondo_handler_tl0
    423 cpu_mondo_handler_tl0:
     377SYMBOL(cpu_mondo_handler_tl0)
    424378        mov TT_CPU_MONDO, %g2
    425379        clr %g5
     
    428382/* TT = 0x80, TL = 0, spill_0_normal handler */
    429383.org trap_table + TT_SPILL_0_NORMAL*ENTRY_SIZE
    430 .global spill_0_normal_tl0
    431 spill_0_normal_tl0:
     384SYMBOL(spill_0_normal_tl0)
    432385        SPILL_NORMAL_HANDLER_KERNEL
    433386
    434387/* TT = 0x84, TL = 0, spill_1_normal handler */
    435388.org trap_table + TT_SPILL_1_NORMAL*ENTRY_SIZE
    436 .global spill_1_normal_tl0
    437 spill_1_normal_tl0:
     389SYMBOL(spill_1_normal_tl0)
    438390        SPILL_NORMAL_HANDLER_USERSPACE
    439391
    440392/* TT = 0x88, TL = 0, spill_2_normal handler */
    441393.org trap_table + TT_SPILL_2_NORMAL*ENTRY_SIZE
    442 .global spill_2_normal_tl0
    443 spill_2_normal_tl0:
     394SYMBOL(spill_2_normal_tl0)
    444395        SPILL_TO_USPACE_WINDOW_BUFFER
    445396
    446397/* TT = 0xa0, TL = 0, spill_0_other handler */
    447398.org trap_table + TT_SPILL_0_OTHER*ENTRY_SIZE
    448 .global spill_0_other_tl0
    449 spill_0_other_tl0:
     399SYMBOL(spill_0_other_tl0)
    450400        SPILL_TO_USPACE_WINDOW_BUFFER
    451401
    452402/* TT = 0xc0, TL = 0, fill_0_normal handler */
    453403.org trap_table + TT_FILL_0_NORMAL*ENTRY_SIZE
    454 .global fill_0_normal_tl0
    455 fill_0_normal_tl0:
     404SYMBOL(fill_0_normal_tl0)
    456405        FILL_NORMAL_HANDLER_KERNEL
    457406
    458407/* TT = 0xc4, TL = 0, fill_1_normal handler */
    459408.org trap_table + TT_FILL_1_NORMAL*ENTRY_SIZE
    460 .global fill_1_normal_tl0
    461 fill_1_normal_tl0:
     409SYMBOL(fill_1_normal_tl0)
    462410        FILL_NORMAL_HANDLER_USERSPACE
    463411
     
    472420    127
    473421.org trap_table + (TT_TRAP_INSTRUCTION_0+\cur)*ENTRY_SIZE
    474 .global trap_instruction_\cur\()_tl0
    475 trap_instruction_\cur\()_tl0:
     422SYMBOL(trap_instruction_\cur\()_tl0)
    476423        mov \cur, %g2
    477424        ba %xcc, trap_instruction_handler
     
    486433/* TT = 0x08, TL > 0, IAE_privilege_violation on UltraSPARC T2 */
    487434.org trap_table + (TT_INSTRUCTION_ACCESS_EXCEPTION+512)*ENTRY_SIZE
    488 .global instruction_access_exception_tl1
    489 instruction_access_exception_tl1:
     435SYMBOL(instruction_access_exception_tl1)
    490436        wrpr %g0, 1, %tl
    491437        mov TT_INSTRUCTION_ACCESS_EXCEPTION, %g2
     
    495441/* TT = 0x09, TL > 0, instruction_access_mmu_miss */
    496442.org trap_table + (TT_INSTRUCTION_ACCESS_MMU_MISS+512)*ENTRY_SIZE
    497 .global instruction_access_mmu_miss_handler_tl1
     443SYMBOL(instruction_access_mmu_miss_handler_tl1)
    498444        wrpr %g0, 1, %tl
    499445        ba,a %xcc, fast_instruction_access_mmu_miss_handler_tl0
     
    501447/* TT = 0x0a, TL > 0, instruction_access_error */
    502448.org trap_table + (TT_INSTRUCTION_ACCESS_ERROR+512)*ENTRY_SIZE
    503 .global instruction_access_error_tl1
    504 instruction_access_error_tl1:
     449SYMBOL(instruction_access_error_tl1)
    505450        wrpr %g0, 1, %tl
    506451        mov TT_INSTRUCTION_ACCESS_ERROR, %g2
     
    510455/* TT = 0x0b, TL > 0, IAE_unauth_access */
    511456.org trap_table + (TT_IAE_UNAUTH_ACCESS+512)*ENTRY_SIZE
    512 .global iae_unauth_access_tl1
    513 iae_unauth_access_tl1:
     457SYMBOL(iae_unauth_access_tl1)
    514458        wrpr %g0, 1, %tl
    515459        mov TT_IAE_UNAUTH_ACCESS, %g2
     
    519463/* TT = 0x0c, TL > 0, IAE_nfo_page */
    520464.org trap_table + (TT_IAE_NFO_PAGE+512)*ENTRY_SIZE
    521 .global iae_nfo_page_tl1
    522 iae_nfo_page_tl1:
     465SYMBOL(iae_nfo_page_tl1)
    523466        wrpr %g0, 1, %tl
    524467        mov TT_IAE_NFO_PAGE, %g2
     
    528471/* TT = 0x10, TL > 0, illegal_instruction */
    529472.org trap_table + (TT_ILLEGAL_INSTRUCTION+512)*ENTRY_SIZE
    530 .global illegal_instruction_tl1
    531 illegal_instruction_tl1:
     473SYMBOL(illegal_instruction_tl1)
    532474        wrpr %g0, 1, %tl
    533475        mov TT_ILLEGAL_INSTRUCTION, %g2
     
    537479/* TT = 0x14, TL > 0, DAE_invalid_asi */
    538480.org trap_table + (TT_DAE_INVALID_ASI+512)*ENTRY_SIZE
    539 .global dae_invalid_asi_tl1
    540 dae_invalid_asi_tl1:
     481SYMBOL(dae_invalid_asi_tl1)
    541482        wrpr %g0, 1, %tl
    542483        mov TT_DAE_INVALID_ASI, %g2
     
    546487/* TT = 0x15, TL > 0, DAE_privilege_violation */
    547488.org trap_table + (TT_DAE_PRIVILEGE_VIOLATION+512)*ENTRY_SIZE
    548 .global dae_privilege_violation_tl1
    549 dae_privilege_violation_tl1:
     489SYMBOL(dae_privilege_violation_tl1)
    550490        wrpr %g0, 1, %tl
    551491        mov TT_DAE_PRIVILEGE_VIOLATION, %g2
     
    555495/* TT = 0x16, TL > 0, DAE_nc_page */
    556496.org trap_table + (TT_DAE_NC_PAGE+512)*ENTRY_SIZE
    557 .global dae_nc_page_tl1
    558 dae_nc_page_tl1:
     497SYMBOL(dae_nc_page_tl1)
    559498        wrpr %g0, 1, %tl
    560499        mov TT_DAE_NC_PAGE, %g2
     
    564503/* TT = 0x17, TL > 0, DAE_nfo_page */
    565504.org trap_table + (TT_DAE_NFO_PAGE+512)*ENTRY_SIZE
    566 .global dae_nfo_page_tl1
    567 dae_nfo_page_tl1:
     505SYMBOL(dae_nfo_page_tl1)
    568506        wrpr %g0, 1, %tl
    569507        mov TT_DAE_NFO_PAGE, %g2
     
    573511/* TT = 0x24, TL > 0, clean_window handler */
    574512.org trap_table + (TT_CLEAN_WINDOW+512)*ENTRY_SIZE
    575 .global clean_window_tl1
    576 clean_window_tl1:
     513SYMBOL(clean_window_tl1)
    577514        CLEAN_WINDOW_HANDLER
    578515
    579516/* TT = 0x28, TL > 0, division_by_zero */
    580517.org trap_table + (TT_DIVISION_BY_ZERO+512)*ENTRY_SIZE
    581 .global division_by_zero_tl1
    582 division_by_zero_tl1:
     518SYMBOL(division_by_zero_tl1)
    583519        wrpr %g0, 1, %tl
    584520        mov TT_DIVISION_BY_ZERO, %g2
     
    588524/* TT = 0x30, TL > 0, data_access_exception */
    589525.org trap_table + (TT_DATA_ACCESS_EXCEPTION+512)*ENTRY_SIZE
    590 .global data_access_exception_tl1
    591 data_access_exception_tl1:
     526SYMBOL(data_access_exception_tl1)
    592527        wrpr %g0, 1, %tl
    593528        mov TT_DATA_ACCESS_EXCEPTION, %g2
     
    597532/* TT = 0x31, TL > 0, data_access_mmu_miss */
    598533.org trap_table + (TT_DATA_ACCESS_MMU_MISS+512)*ENTRY_SIZE
    599 .global data_access_mmu_miss_tl1
    600 data_access_mmu_miss_tl1:
     534SYMBOL(data_access_mmu_miss_tl1)
    601535        ba,a %xcc, fast_data_access_mmu_miss_handler_tl1
    602536
    603537/* TT = 0x32, TL > 0, data_access_error */
    604538.org trap_table + (TT_DATA_ACCESS_ERROR+512)*ENTRY_SIZE
    605 .global data_access_error_tl1
    606 data_access_error_tl1:
     539SYMBOL(data_access_error_tl1)
    607540        wrpr %g0, 1, %tl
    608541        mov TT_DATA_ACCESS_ERROR, %g2
     
    612545/* TT = 0x34, TL > 0, mem_address_not_aligned */
    613546.org trap_table + (TT_MEM_ADDRESS_NOT_ALIGNED+512)*ENTRY_SIZE
    614 .global mem_address_not_aligned_tl1
    615 mem_address_not_aligned_tl1:
     547SYMBOL(mem_address_not_aligned_tl1)
    616548        wrpr %g0, 1, %tl
    617549        mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2
     
    621553/* TT = 0x68, TL > 0, fast_data_access_MMU_miss */
    622554.org trap_table + (TT_FAST_DATA_ACCESS_MMU_MISS+512)*ENTRY_SIZE
    623 .global fast_data_access_mmu_miss_handler_tl1
    624 fast_data_access_mmu_miss_handler_tl1:
     555SYMBOL(fast_data_access_mmu_miss_handler_tl1)
    625556        FAST_DATA_ACCESS_MMU_MISS_HANDLER 1
    626557
    627558/* TT = 0x6c, TL > 0, fast_data_access_protection */
    628559.org trap_table + (TT_FAST_DATA_ACCESS_PROTECTION+512)*ENTRY_SIZE
    629 .global fast_data_access_protection_handler_tl1
    630 fast_data_access_protection_handler_tl1:
     560SYMBOL(fast_data_access_protection_handler_tl1)
    631561        FAST_DATA_ACCESS_PROTECTION_HANDLER 1
    632562
    633563/* TT = 0x7c, TL > 0, cpu_mondo */
    634564.org trap_table + (TT_CPU_MONDO+512)*ENTRY_SIZE
    635 .global cpu_mondo_handler_tl1
    636 cpu_mondo_handler_tl1:
     565SYMBOL(cpu_mondo_handler_tl1)
    637566        wrpr %g0, %tl
    638567        mov TT_CPU_MONDO, %g2
     
    642571/* TT = 0x80, TL > 0, spill_0_normal handler */
    643572.org trap_table + (TT_SPILL_0_NORMAL+512)*ENTRY_SIZE
    644 .global spill_0_normal_tl1
    645 spill_0_normal_tl1:
     573SYMBOL(spill_0_normal_tl1)
    646574        SPILL_NORMAL_HANDLER_KERNEL
    647575
    648576/* TT = 0x88, TL > 0, spill_2_normal handler */
    649577.org trap_table + (TT_SPILL_2_NORMAL+512)*ENTRY_SIZE
    650 .global spill_2_normal_tl1
    651 spill_2_normal_tl1:
     578SYMBOL(spill_2_normal_tl1)
    652579        SPILL_TO_USPACE_WINDOW_BUFFER
    653580
    654581/* TT = 0xa0, TL > 0, spill_0_other handler */
    655582.org trap_table + (TT_SPILL_0_OTHER+512)*ENTRY_SIZE
    656 .global spill_0_other_tl1
    657 spill_0_other_tl1:
     583SYMBOL(spill_0_other_tl1)
    658584        SPILL_TO_USPACE_WINDOW_BUFFER
    659585
    660586/* TT = 0xc0, TL > 0, fill_0_normal handler */
    661587.org trap_table + (TT_FILL_0_NORMAL+512)*ENTRY_SIZE
    662 .global fill_0_normal_tl1
    663 fill_0_normal_tl1:
     588SYMBOL(fill_0_normal_tl1)
    664589        FILL_NORMAL_HANDLER_KERNEL
    665590
     
    11781103.endm
    11791104
    1180 .global preemptible_handler
    1181 preemptible_handler:
     1105SYMBOL(preemptible_handler)
    11821106        PREEMPTIBLE_HANDLER_TEMPLATE 0
    11831107
    1184 .global trap_instruction_handler
    1185 trap_instruction_handler:
     1108SYMBOL(trap_instruction_handler)
    11861109        PREEMPTIBLE_HANDLER_TEMPLATE 1
  • uspace/lib/c/arch/sparc64/Makefile.inc

    r27f67f5 ra52e2f4  
    2828
    2929ARCH_SOURCES = \
    30         arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    32         arch/$(UARCH)/src/thread_entry.s \
     30        arch/$(UARCH)/src/entry.S \
     31        arch/$(UARCH)/src/entryjmp.S \
     32        arch/$(UARCH)/src/thread_entry.S \
    3333        arch/$(UARCH)/src/fibril.S \
    3434        arch/$(UARCH)/src/tls.c \
  • uspace/lib/c/arch/sparc64/src/entry.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
     30
    2931.section .init, "ax"
    3032
    3133.org 0
    32 
    33 .globl __entry
    3434
    3535## User-space task entry point
     
    3838# %o1 contains pcb_ptr
    3939#
    40 __entry:
     40SYMBOL(__entry)
    4141        #
    4242        # Create the first stack frame.
  • uspace/lib/c/arch/sparc64/src/entryjmp.S

    r27f67f5 ra52e2f4  
    2727#
    2828
    29 .globl entry_point_jmp
     29#include <abi/asmtool.h>
    3030
    3131## void entry_point_jmp(void *entry_point, void *pcb);
     
    3535#
    3636# Jump to program entry point
    37 entry_point_jmp:
     37SYMBOL(entry_point_jmp)
    3838        # Pass pcb pointer to entry point in %o1. As it is already
    3939        # there, no action is needed.
  • uspace/lib/c/arch/sparc64/src/fibril.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
    2930#include <libarch/fibril_context.h>
    3031
    3132.text
    3233
    33 .global context_save
    34 .global context_restore
    35 
    36 context_save:
     34FUNCTION_BEGIN(context_save)
    3735        #
    3836        # We rely on the kernel to flush our active register windows to memory
     
    6058        retl
    6159        mov 1, %o0              ! context_save_arch returns 1
     60FUNCTION_END(context_save)
    6261
    63 context_restore:
     62FUNCTION_BEGIN(context_restore)
    6463        #
    6564        # Flush all active windows.
     
    9190        retl
    9291        xor %o0, %o0, %o0       ! context_restore_arch returns 0
     92FUNCTION_END(context_restore)
  • uspace/lib/c/arch/sparc64/src/stacktrace_asm.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
    2930#include <libarch/stack.h>
    3031
    3132.text
    3233
    33 .global stacktrace_prepare
    34 .global stacktrace_fp_get
    35 .global stacktrace_pc_get
    36 
    37 stacktrace_prepare:
     34FUNCTION_BEGIN(stacktrace_prepare)
    3835        save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE+STACK_ARG_SAVE_AREA_SIZE), %sp
    3936        # Flush all other windows to memory so that we can read their contents.
     
    4138        ret
    4239        restore
     40FUNCTION_END(stacktrace_prepare)
    4341
    44 stacktrace_fp_get:
     42FUNCTION_BEGIN(stacktrace_fp_get)
    4543        # Add the stack bias to %sp to get the actual address.
    4644        retl
    4745        add %sp, STACK_BIAS, %o0
     46FUNCTION_END(stacktrace_fp_get)
    4847
    49 stacktrace_pc_get:
     48FUNCTION_BEGIN(stacktrace_pc_get)
    5049        retl
    5150        mov %o7, %o0
     51FUNCTION_END(stacktrace_pc_get)
  • uspace/lib/c/arch/sparc64/src/thread_entry.S

    r27f67f5 ra52e2f4  
    2727#
    2828
     29#include <abi/asmtool.h>
     30
    2931.text
    3032       
    31 .globl __thread_entry
    32 
    3333## User-space thread entry point for all but the first threads.
    3434#
    3535#
    36 __thread_entry:
     36SYMBOL(__thread_entry)
    3737        #
    3838        # Create the first stack frame.
     
    5252       
    5353        ! not reached
    54        
    55 .end __thread_entry
Note: See TracChangeset for help on using the changeset viewer.