mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 11:24:05 +08:00
8410904a77
* config/rl78/cmpsi2.S: Use function start and end macros. (__gcc_bcmp): New function. * config/rl78/lshrsi3.S: Use function start and end macros. * config/rl78/mulsi3.S: Add support for G10. (__mulqi3): New function for G10. * config/rl78/signbit.S: Use function start and end macros. * config/rl78/t-rl78 (LIB2ADD): Add bit-count.S, fpbit-sf.S and fpmath-sf.S. (LIB2FUNCS_EXCLUDE): Define. (LIB2FUNCS_ST): Define. * config/rl78/trampoline.S: Use function start and end macros. * config/rl78/vregs.h (START_FUNC): New macro. (START_ANOTHER_FUNC): New macro. (END_FUNC): New macro. (END_ANOTHER_FUNC): New macro. * config/rl78/bit-count.S: New file. Contains assembler implementations of the bit counting functions: ___clzhi2, __clzsi2, ctzhi2, ctzsi2, ffshi2, ffssi2, __partityhi2, __paritysi2, __popcounthi2 and __popcountsi2. * config/rl78/fpbit-sf.S: New file. Contains assembler implementationas of the math functions: __negsf2, __cmpsf2, __eqsf2, __nesf2, __lesf2, __ltsf2, __gesf2, gtsf2, __unordsf2, __fixsfsi, __fixunssfsi, __floatsisf and __floatunssisf. * config/rl78/fpmath-sf.S: New file. Contains assembler implementations of the math functions: __subsf3, __addsf3, __mulsf3 and __divsf3 From-SVN: r220162
80 lines
1.2 KiB
C
80 lines
1.2 KiB
C
|
|
; real
|
|
; GAS defines r0..r7 as aliases for real registers; we want the saddr
|
|
; forms here.
|
|
r_0 = 0xffef8
|
|
r_1 = 0xffef9
|
|
r_2 = 0xffefa
|
|
r_3 = 0xffefb
|
|
r_4 = 0xffefc
|
|
r_5 = 0xffefd
|
|
r_6 = 0xffefe
|
|
r_7 = 0xffeff
|
|
|
|
#ifdef __RL78_G10__
|
|
|
|
; clobberable
|
|
r8 = 0xffec8
|
|
r9 = 0xffec9
|
|
r10 = 0xffeca
|
|
r11 = 0xffecb
|
|
r12 = 0xffecc
|
|
r13 = 0xffecd
|
|
r14 = 0xffece
|
|
r15 = 0xffecf
|
|
; preserved
|
|
r16 = 0xffed0
|
|
r17 = 0xffed1
|
|
r18 = 0xffed2
|
|
r19 = 0xffed3
|
|
r20 = 0xffed4
|
|
r21 = 0xffed5
|
|
r22 = 0xffed6
|
|
r23 = 0xffed7
|
|
|
|
#else
|
|
|
|
; clobberable
|
|
r8 = 0xffef0
|
|
r9 = 0xffef1
|
|
r10 = 0xffef2
|
|
r11 = 0xffef3
|
|
r12 = 0xffef4
|
|
r13 = 0xffef5
|
|
r14 = 0xffef6
|
|
r15 = 0xffef7
|
|
; preserved
|
|
r16 = 0xffee8
|
|
r17 = 0xffee9
|
|
r18 = 0xffeea
|
|
r19 = 0xffeeb
|
|
r20 = 0xffeec
|
|
r21 = 0xffeed
|
|
r22 = 0xffeee
|
|
r23 = 0xffeef
|
|
|
|
#endif
|
|
|
|
.macro START_ANOTHER_FUNC name
|
|
.global \name
|
|
.type \name , @function
|
|
\name:
|
|
.endm
|
|
|
|
/* Start a function in its own section, so that it
|
|
can be subject to linker garbage collection. */
|
|
.macro START_FUNC name
|
|
.pushsection .text.\name,"ax",@progbits
|
|
START_ANOTHER_FUNC \name
|
|
.endm
|
|
|
|
.macro END_ANOTHER_FUNC name
|
|
.size \name , . - \name
|
|
.endm
|
|
|
|
/* End the function. Set the size. */
|
|
.macro END_FUNC name
|
|
END_ANOTHER_FUNC \name
|
|
.popsection
|
|
.endm
|