• aldyh's avatar
    * config/frv/frv.c (frv_legitimize_tls_address): New. · 54c37fd6
    aldyh authored
    	(TARGET_HAVE_TLS): Define.
    	(FRV_SYMBOL_REF_TLS_P): Define.
    	(frv_override_options): Handle new register classes.
    	(frv_legitimate_address_p): Reject tls addresses.
    	(frv_legitimize_address): Handle TLS addresses.
    	(gen_inlined_tls_plt): New.
    	(gen_tlsmoff): New.
    	(frv_legitimize_tls_address): New.
    	(unspec_got_name): Add TLS entries.
    	(got12_operand): Add R_FRV_TLSMOFF12 case.
    	(frv_emit_move): Fixup TLS addresses.
    	(frv_emit_movsi): Legitimize TLS addresses.
    
    	* config/frv/frv.h (MASK_BIG_TLS): New.
    	(TARGET_BIG_TLS): New.
    	(HAVE_AS_TLS): Define.
    	(TARGET_SWITCHES): Add -mTLS and -mtls options.
    	(enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
    	(REG_CLASS_NAMES): Same.
    	(REG_CLASS_CONTENTS): Same.
    	(CONSTRAINT_LEN): New.
    	(REG_CLASS_FROM_CONSTRAINT): New.
    	(PREDICATE_CODES): Add symbolic_operand.
    
    	* config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
    	UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
    	UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
    	UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
    	R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
    	R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
    	R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
    	GR9_REG, GR14_REG, LRREG.
    	(type): Add load_or_call attribute.
    	("load_or_call"): New reservation.
    	("call_gettlsoff"): New.
    	("tls_indirect_call"): New.
    	("tls_load_gottlsoff12"): New.
    	("tlsoff_hilo"): New.
    	("tls_tlsdesc_ldd"): New.
    	("tls_tlsoff_ld"): New.
    	("tls_lddi"): New.
    
    	* config/frv/frv-protos.h (symbolic_operand): Protoize.
    
            * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
            * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
            * config/frv/frv.c (TLS_BIAS): Define.
            (frv_output_dwarf_dtprel): New.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94237 138bc75d-0d04-0410-961f-82ee72b054a4
    54c37fd6
frv.c 293 KB