Skip to content

Commit 8e7ebea

Browse files
author
Nick Kledzik
committed
add explicit alignment directives to assure arm code is 4-byte aligned
llvm-svn: 102030
1 parent 02e816b commit 8e7ebea

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+43
-0
lines changed

compiler-rt/lib/arm/adddf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Adds two double precision floating point numbers using the Darwin
1616
// calling convention where double arguments are passsed in GPR pairs
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__adddf3vfp)
1920
fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6
2021
fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7

compiler-rt/lib/arm/addsf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Adds two single precision floating point numbers using the Darwin
1616
// calling convention where single arguments are passsed in GPRs
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__addsf3vfp)
1920
fmsr s14, r0 // move first param from r0 into float register
2021
fmsr s15, r1 // move second param from r1 into float register

compiler-rt/lib/arm/bswapdi2.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
//
1515
// Reverse all the bytes in a 64-bit integer.
1616
//
17+
.align 2
1718
DEFINE_COMPILERRT_FUNCTION(__bswapdi2)
1819
rev r2, r1 // reverse bytes in high 32-bits into temp2
1920
rev r3, r0 // reverse bytes in low 32-bit into temp3

compiler-rt/lib/arm/bswapsi2.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
//
1515
// Reverse all the bytes in a 32-bit integer.
1616
//
17+
.align 2
1718
DEFINE_COMPILERRT_FUNCTION(__bswapsi2)
1819
rev r0, r0 // reverse bytes in parameter and put into result register
1920
bx lr

compiler-rt/lib/arm/divdf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Divides two double precision floating point numbers using the Darwin
1616
// calling convention where double arguments are passsed in GPR pairs
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__divdf3vfp)
1920
fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6
2021
fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7

compiler-rt/lib/arm/divsf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Divides two single precision floating point numbers using the Darwin
1616
// calling convention where single arguments are passsed like 32-bit ints.
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__divsf3vfp)
1920
fmsr s14, r0 // move first param from r0 into float register
2021
fmsr s15, r1 // move second param from r1 into float register

compiler-rt/lib/arm/eqdf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where double precision arguments are passsed
1717
// like in GPR pairs.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp)
2021
fmdrr d6, r0, r1 // load r0/r1 pair in double register
2122
fmdrr d7, r2, r3 // load r2/r3 pair in double register

compiler-rt/lib/arm/eqsf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where single precision arguments are passsed
1717
// like 32-bit ints
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp)
2021
fmsr s14, r0 // move from GPR 0 to float register
2122
fmsr s15, r1 // move from GPR 1 to float register

compiler-rt/lib/arm/extendsfdf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a single precision parameter is
1717
// passed in a GPR and a double precision result is returned in R0/R1 pair.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__extendsfdf2vfp)
2021
fmsr s15, r0 // load float register from R0
2122
fcvtds d7, s15 // convert single to double

compiler-rt/lib/arm/fixdfsivfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a double precision parameter is
1717
// passed in GPR register pair.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__fixdfsivfp)
2021
fmdrr d7, r0, r1 // load double register from R0/R1
2122
ftosizd s15, d7 // convert double to 32-bit int into s15

compiler-rt/lib/arm/fixsfsivfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a single precision parameter is
1717
// passed in a GPR..
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__fixsfsivfp)
2021
fmsr s15, r0 // load float register from R0
2122
ftosizs s15, s15 // convert single to 32-bit int into s15

compiler-rt/lib/arm/fixunsdfsivfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
// Uses Darwin calling convention where a double precision parameter is
1818
// passed in GPR register pair.
1919
//
20+
.align 2
2021
DEFINE_COMPILERRT_FUNCTION(__fixunsdfsivfp)
2122
fmdrr d7, r0, r1 // load double register from R0/R1
2223
ftouizd s15, d7 // convert double to 32-bit int into s15

compiler-rt/lib/arm/fixunssfsivfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
// Uses Darwin calling convention where a single precision parameter is
1818
// passed in a GPR..
1919
//
20+
.align 2
2021
DEFINE_COMPILERRT_FUNCTION(__fixunssfsivfp)
2122
fmsr s15, r0 // load float register from R0
2223
ftouizs s15, s15 // convert single to 32-bit unsigned into s15

compiler-rt/lib/arm/floatsidfvfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a double precision result is
1717
// return in GPR register pair.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__floatsidfvfp)
2021
fmsr s15, r0 // move int to float register s15
2122
fsitod d7, s15 // convert 32-bit int in s15 to double in d7

compiler-rt/lib/arm/floatsisfvfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a single precision result is
1717
// return in a GPR..
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__floatsisfvfp)
2021
fmsr s15, r0 // move int to float register s15
2122
fsitos s15, s15 // convert 32-bit int in s15 to float in s15

compiler-rt/lib/arm/floatunssidfvfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a double precision result is
1717
// return in GPR register pair.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp)
2021
fmsr s15, r0 // move int to float register s15
2122
fuitod d7, s15 // convert 32-bit int in s15 to double in d7

compiler-rt/lib/arm/floatunssisfvfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a single precision result is
1717
// return in a GPR..
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp)
2021
fmsr s15, r0 // move int to float register s15
2122
fuitos s15, s15 // convert 32-bit int in s15 to float in s15

compiler-rt/lib/arm/gedf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where double precision arguments are passsed
1717
// like in GPR pairs.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__gedf2vfp)
2021
fmdrr d6, r0, r1 // load r0/r1 pair in double register
2122
fmdrr d7, r2, r3 // load r2/r3 pair in double register

compiler-rt/lib/arm/gesf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where single precision arguments are passsed
1717
// like 32-bit ints
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__gesf2vfp)
2021
fmsr s14, r0 // move from GPR 0 to float register
2122
fmsr s15, r1 // move from GPR 1 to float register

compiler-rt/lib/arm/gtdf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where double precision arguments are passsed
1717
// like in GPR pairs.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp)
2021
fmdrr d6, r0, r1 // load r0/r1 pair in double register
2122
fmdrr d7, r2, r3 // load r2/r3 pair in double register

compiler-rt/lib/arm/gtsf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where single precision arguments are passsed
1717
// like 32-bit ints
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp)
2021
fmsr s14, r0 // move from GPR 0 to float register
2122
fmsr s15, r1 // move from GPR 1 to float register

compiler-rt/lib/arm/ledf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where double precision arguments are passsed
1717
// like in GPR pairs.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__ledf2vfp)
2021
fmdrr d6, r0, r1 // load r0/r1 pair in double register
2122
fmdrr d7, r2, r3 // load r2/r3 pair in double register

compiler-rt/lib/arm/lesf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where single precision arguments are passsed
1717
// like 32-bit ints
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__lesf2vfp)
2021
fmsr s14, r0 // move from GPR 0 to float register
2122
fmsr s15, r1 // move from GPR 1 to float register

compiler-rt/lib/arm/ltdf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where double precision arguments are passsed
1717
// like in GPR pairs.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp)
2021
fmdrr d6, r0, r1 // load r0/r1 pair in double register
2122
fmdrr d7, r2, r3 // load r2/r3 pair in double register

compiler-rt/lib/arm/ltsf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where single precision arguments are passsed
1717
// like 32-bit ints
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp)
2021
fmsr s14, r0 // move from GPR 0 to float register
2122
fmsr s15, r1 // move from GPR 1 to float register

compiler-rt/lib/arm/muldf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Multiplies two double precision floating point numbers using the Darwin
1616
// calling convention where double arguments are passsed in GPR pairs
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__muldf3vfp)
1920
fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6
2021
fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7

compiler-rt/lib/arm/mulsf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Multiplies two single precision floating point numbers using the Darwin
1616
// calling convention where single arguments are passsed like 32-bit ints.
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__mulsf3vfp)
1920
fmsr s14, r0 // move first param from r0 into float register
2021
fmsr s15, r1 // move second param from r1 into float register

compiler-rt/lib/arm/nedf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where double precision arguments are passsed
1717
// like in GPR pairs.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__nedf2vfp)
2021
fmdrr d6, r0, r1 // load r0/r1 pair in double register
2122
fmdrr d7, r2, r3 // load r2/r3 pair in double register

compiler-rt/lib/arm/negdf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Returns the negation a double precision floating point numbers using the
1616
// Darwin calling convention where double arguments are passsed in GPR pairs.
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__negdf2vfp)
1920
eor r1, r1, #-2147483648 // flip sign bit on double in r0/r1 pair
2021
bx lr

compiler-rt/lib/arm/negsf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Returns the negation of a single precision floating point numbers using the
1616
// Darwin calling convention where single arguments are passsed like 32-bit ints
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__negsf2vfp)
1920
eor r0, r0, #-2147483648 // flip sign bit on float in r0
2021
bx lr

compiler-rt/lib/arm/nesf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where single precision arguments are passsed
1717
// like 32-bit ints
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__nesf2vfp)
2021
fmsr s14, r0 // move from GPR 0 to float register
2122
fmsr s15, r1 // move from GPR 1 to float register

compiler-rt/lib/arm/restore_vfp_d8_d15_regs.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
//
2626
// Restore registers d8-d15 from stack
2727
//
28+
.align 2
2829
DEFINE_COMPILERRT_PRIVATE_FUNCTION(__restore_vfp_d8_d15_regs)
2930
vldmia sp!, {d8-d15} // pop registers d8-d15 off stack
3031
bx lr // return to prolog

compiler-rt/lib/arm/save_vfp_d8_d15_regs.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
//
2626
// Save registers d8-d15 onto stack
2727
//
28+
.align 2
2829
DEFINE_COMPILERRT_PRIVATE_FUNCTION(__save_vfp_d8_d15_regs)
2930
vstmdb sp!, {d8-d15} // push registers d8-d15 onto stack
3031
bx lr // return to prolog

compiler-rt/lib/arm/subdf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Returns difference between two double precision floating point numbers using
1616
// the Darwin calling convention where double arguments are passsed in GPR pairs
1717
//
18+
.align 2
1819
DEFINE_COMPILERRT_FUNCTION(__subdf3vfp)
1920
fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6
2021
fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7

compiler-rt/lib/arm/subsf3vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// using the Darwin calling convention where single arguments are passsed
1717
// like 32-bit ints.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__subsf3vfp)
2021
fmsr s14, r0 // move first param from r0 into float register
2122
fmsr s15, r1 // move second param from r1 into float register

compiler-rt/lib/arm/switch16.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
// The table contains signed 2-byte sized elements which are 1/2 the distance
3030
// from lr to the target label.
3131
//
32+
.align 2
3233
DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch16)
3334
ldrh ip, [lr, #-1] // get first 16-bit word in table
3435
cmp r0, ip // compare with index

compiler-rt/lib/arm/switch32.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
// The table contains signed 4-byte sized elements which are the distance
3030
// from lr to the target label.
3131
//
32+
.align 2
3233
DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch32)
3334
ldr ip, [lr, #-1] // get first 32-bit word in table
3435
cmp r0, ip // compare with index

compiler-rt/lib/arm/switch8.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
// The table contains signed byte sized elements which are 1/2 the distance
3030
// from lr to the target label.
3131
//
32+
.align 2
3233
DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch8)
3334
ldrb ip, [lr, #-1] // get first byte in table
3435
cmp r0, ip // signed compare with index

compiler-rt/lib/arm/switchu8.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
// The table contains unsigned byte sized elements which are 1/2 the distance
3030
// from lr to the target label.
3131
//
32+
.align 2
3233
DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switchu8)
3334
ldrb ip, [lr, #-1] // get first byte in table
3435
cmp r0, ip // compare with index

compiler-rt/lib/arm/sync_synchronize.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
#if __APPLE__
2323

24+
.align 2
2425
DEFINE_COMPILERRT_PRIVATE_FUNCTION(__sync_synchronize)
2526
stmfd sp!, {r7, lr}
2627
add r7, sp, #0

compiler-rt/lib/arm/truncdfsf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where a double precision parameter is
1717
// passed in a R0/R1 pair and a signle precision result is returned in R0.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__truncdfsf2vfp)
2021
fmdrr d7, r0, r1 // load double from r0/r1 pair
2122
fcvtsd s15, d7 // convert double to single (trucate precision)

compiler-rt/lib/arm/unorddf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where double precision arguments are passsed
1717
// like in GPR pairs.
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp)
2021
fmdrr d6, r0, r1 // load r0/r1 pair in double register
2122
fmdrr d7, r2, r3 // load r2/r3 pair in double register

compiler-rt/lib/arm/unordsf2vfp.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// Uses Darwin calling convention where single precision arguments are passsed
1717
// like 32-bit ints
1818
//
19+
.align 2
1920
DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp)
2021
fmsr s14, r0 // move from GPR 0 to float register
2122
fmsr s15, r1 // move from GPR 1 to float register

0 commit comments

Comments
 (0)