diff options
| author | Nick Kledzik <kledzik@apple.com> | 2010-04-21 22:36:23 +0000 |
|---|---|---|
| committer | Nick Kledzik <kledzik@apple.com> | 2010-04-21 22:36:23 +0000 |
| commit | 8e7ebea0b9918a8e8ee2b9a47963877e997a52fb (patch) | |
| tree | f23f1b7cb1f250f54fe30b1c505dfd68f0b257e2 /compiler-rt/lib/arm | |
| parent | 02e816b317dac4599b76cfd501dd5ee0eb4caaa1 (diff) | |
| download | bcm5719-llvm-8e7ebea0b9918a8e8ee2b9a47963877e997a52fb.tar.gz bcm5719-llvm-8e7ebea0b9918a8e8ee2b9a47963877e997a52fb.zip | |
add explicit alignment directives to assure arm code is 4-byte aligned
llvm-svn: 102030
Diffstat (limited to 'compiler-rt/lib/arm')
43 files changed, 43 insertions, 0 deletions
diff --git a/compiler-rt/lib/arm/adddf3vfp.S b/compiler-rt/lib/arm/adddf3vfp.S index 1b49daae7f4..5e705e3c579 100644 --- a/compiler-rt/lib/arm/adddf3vfp.S +++ b/compiler-rt/lib/arm/adddf3vfp.S @@ -15,6 +15,7 @@ // Adds two double precision floating point numbers using the Darwin // calling convention where double arguments are passsed in GPR pairs // + .align 2 DEFINE_COMPILERRT_FUNCTION(__adddf3vfp) fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6 fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7 diff --git a/compiler-rt/lib/arm/addsf3vfp.S b/compiler-rt/lib/arm/addsf3vfp.S index 292d05240cb..36d509c1f52 100644 --- a/compiler-rt/lib/arm/addsf3vfp.S +++ b/compiler-rt/lib/arm/addsf3vfp.S @@ -15,6 +15,7 @@ // Adds two single precision floating point numbers using the Darwin // calling convention where single arguments are passsed in GPRs // + .align 2 DEFINE_COMPILERRT_FUNCTION(__addsf3vfp) fmsr s14, r0 // move first param from r0 into float register fmsr s15, r1 // move second param from r1 into float register diff --git a/compiler-rt/lib/arm/bswapdi2.S b/compiler-rt/lib/arm/bswapdi2.S index 2a3465b94b7..262171e76ca 100644 --- a/compiler-rt/lib/arm/bswapdi2.S +++ b/compiler-rt/lib/arm/bswapdi2.S @@ -14,6 +14,7 @@ // // Reverse all the bytes in a 64-bit integer. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__bswapdi2) rev r2, r1 // reverse bytes in high 32-bits into temp2 rev r3, r0 // reverse bytes in low 32-bit into temp3 diff --git a/compiler-rt/lib/arm/bswapsi2.S b/compiler-rt/lib/arm/bswapsi2.S index dd9faf18c73..74c25b86ae5 100644 --- a/compiler-rt/lib/arm/bswapsi2.S +++ b/compiler-rt/lib/arm/bswapsi2.S @@ -14,6 +14,7 @@ // // Reverse all the bytes in a 32-bit integer. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__bswapsi2) rev r0, r0 // reverse bytes in parameter and put into result register bx lr diff --git a/compiler-rt/lib/arm/divdf3vfp.S b/compiler-rt/lib/arm/divdf3vfp.S index a809427494c..e43baa37327 100644 --- a/compiler-rt/lib/arm/divdf3vfp.S +++ b/compiler-rt/lib/arm/divdf3vfp.S @@ -15,6 +15,7 @@ // Divides two double precision floating point numbers using the Darwin // calling convention where double arguments are passsed in GPR pairs // + .align 2 DEFINE_COMPILERRT_FUNCTION(__divdf3vfp) fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6 fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7 diff --git a/compiler-rt/lib/arm/divsf3vfp.S b/compiler-rt/lib/arm/divsf3vfp.S index 67b8a0c8d70..d96c930f835 100644 --- a/compiler-rt/lib/arm/divsf3vfp.S +++ b/compiler-rt/lib/arm/divsf3vfp.S @@ -15,6 +15,7 @@ // Divides two single precision floating point numbers using the Darwin // calling convention where single arguments are passsed like 32-bit ints. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__divsf3vfp) fmsr s14, r0 // move first param from r0 into float register fmsr s15, r1 // move second param from r1 into float register diff --git a/compiler-rt/lib/arm/eqdf2vfp.S b/compiler-rt/lib/arm/eqdf2vfp.S index 771d853f20f..d4384ec0e5e 100644 --- a/compiler-rt/lib/arm/eqdf2vfp.S +++ b/compiler-rt/lib/arm/eqdf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where double precision arguments are passsed // like in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp) fmdrr d6, r0, r1 // load r0/r1 pair in double register fmdrr d7, r2, r3 // load r2/r3 pair in double register diff --git a/compiler-rt/lib/arm/eqsf2vfp.S b/compiler-rt/lib/arm/eqsf2vfp.S index bf4cd1ffde9..07355a3c223 100644 --- a/compiler-rt/lib/arm/eqsf2vfp.S +++ b/compiler-rt/lib/arm/eqsf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where single precision arguments are passsed // like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp) fmsr s14, r0 // move from GPR 0 to float register fmsr s15, r1 // move from GPR 1 to float register diff --git a/compiler-rt/lib/arm/extendsfdf2vfp.S b/compiler-rt/lib/arm/extendsfdf2vfp.S index 8df97b51f5f..4343a7ef1ed 100644 --- a/compiler-rt/lib/arm/extendsfdf2vfp.S +++ b/compiler-rt/lib/arm/extendsfdf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a single precision parameter is // passed in a GPR and a double precision result is returned in R0/R1 pair. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__extendsfdf2vfp) fmsr s15, r0 // load float register from R0 fcvtds d7, s15 // convert single to double diff --git a/compiler-rt/lib/arm/fixdfsivfp.S b/compiler-rt/lib/arm/fixdfsivfp.S index 70d802748a1..30458ccd59b 100644 --- a/compiler-rt/lib/arm/fixdfsivfp.S +++ b/compiler-rt/lib/arm/fixdfsivfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a double precision parameter is // passed in GPR register pair. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__fixdfsivfp) fmdrr d7, r0, r1 // load double register from R0/R1 ftosizd s15, d7 // convert double to 32-bit int into s15 diff --git a/compiler-rt/lib/arm/fixsfsivfp.S b/compiler-rt/lib/arm/fixsfsivfp.S index 17d016c6fb7..ce6f18e1b90 100644 --- a/compiler-rt/lib/arm/fixsfsivfp.S +++ b/compiler-rt/lib/arm/fixsfsivfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a single precision parameter is // passed in a GPR.. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__fixsfsivfp) fmsr s15, r0 // load float register from R0 ftosizs s15, s15 // convert single to 32-bit int into s15 diff --git a/compiler-rt/lib/arm/fixunsdfsivfp.S b/compiler-rt/lib/arm/fixunsdfsivfp.S index a7299f443e6..7e766c02a5e 100644 --- a/compiler-rt/lib/arm/fixunsdfsivfp.S +++ b/compiler-rt/lib/arm/fixunsdfsivfp.S @@ -17,6 +17,7 @@ // Uses Darwin calling convention where a double precision parameter is // passed in GPR register pair. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__fixunsdfsivfp) fmdrr d7, r0, r1 // load double register from R0/R1 ftouizd s15, d7 // convert double to 32-bit int into s15 diff --git a/compiler-rt/lib/arm/fixunssfsivfp.S b/compiler-rt/lib/arm/fixunssfsivfp.S index 166a2ad3de4..ba2344f587e 100644 --- a/compiler-rt/lib/arm/fixunssfsivfp.S +++ b/compiler-rt/lib/arm/fixunssfsivfp.S @@ -17,6 +17,7 @@ // Uses Darwin calling convention where a single precision parameter is // passed in a GPR.. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__fixunssfsivfp) fmsr s15, r0 // load float register from R0 ftouizs s15, s15 // convert single to 32-bit unsigned into s15 diff --git a/compiler-rt/lib/arm/floatsidfvfp.S b/compiler-rt/lib/arm/floatsidfvfp.S index 45bfa34e2df..5ed4ace9b2c 100644 --- a/compiler-rt/lib/arm/floatsidfvfp.S +++ b/compiler-rt/lib/arm/floatsidfvfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a double precision result is // return in GPR register pair. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__floatsidfvfp) fmsr s15, r0 // move int to float register s15 fsitod d7, s15 // convert 32-bit int in s15 to double in d7 diff --git a/compiler-rt/lib/arm/floatsisfvfp.S b/compiler-rt/lib/arm/floatsisfvfp.S index 1b742990d56..0114c789358 100644 --- a/compiler-rt/lib/arm/floatsisfvfp.S +++ b/compiler-rt/lib/arm/floatsisfvfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a single precision result is // return in a GPR.. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__floatsisfvfp) fmsr s15, r0 // move int to float register s15 fsitos s15, s15 // convert 32-bit int in s15 to float in s15 diff --git a/compiler-rt/lib/arm/floatunssidfvfp.S b/compiler-rt/lib/arm/floatunssidfvfp.S index 9866a66b3da..d1bfe3af584 100644 --- a/compiler-rt/lib/arm/floatunssidfvfp.S +++ b/compiler-rt/lib/arm/floatunssidfvfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a double precision result is // return in GPR register pair. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp) fmsr s15, r0 // move int to float register s15 fuitod d7, s15 // convert 32-bit int in s15 to double in d7 diff --git a/compiler-rt/lib/arm/floatunssisfvfp.S b/compiler-rt/lib/arm/floatunssisfvfp.S index 065742b995d..0b73577b106 100644 --- a/compiler-rt/lib/arm/floatunssisfvfp.S +++ b/compiler-rt/lib/arm/floatunssisfvfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a single precision result is // return in a GPR.. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp) fmsr s15, r0 // move int to float register s15 fuitos s15, s15 // convert 32-bit int in s15 to float in s15 diff --git a/compiler-rt/lib/arm/gedf2vfp.S b/compiler-rt/lib/arm/gedf2vfp.S index cb8c71610ef..6ab856fe6f3 100644 --- a/compiler-rt/lib/arm/gedf2vfp.S +++ b/compiler-rt/lib/arm/gedf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where double precision arguments are passsed // like in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__gedf2vfp) fmdrr d6, r0, r1 // load r0/r1 pair in double register fmdrr d7, r2, r3 // load r2/r3 pair in double register diff --git a/compiler-rt/lib/arm/gesf2vfp.S b/compiler-rt/lib/arm/gesf2vfp.S index 24b66e1b966..b00d82107dc 100644 --- a/compiler-rt/lib/arm/gesf2vfp.S +++ b/compiler-rt/lib/arm/gesf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where single precision arguments are passsed // like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__gesf2vfp) fmsr s14, r0 // move from GPR 0 to float register fmsr s15, r1 // move from GPR 1 to float register diff --git a/compiler-rt/lib/arm/gtdf2vfp.S b/compiler-rt/lib/arm/gtdf2vfp.S index afd6d05f40f..65594c7d3f9 100644 --- a/compiler-rt/lib/arm/gtdf2vfp.S +++ b/compiler-rt/lib/arm/gtdf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where double precision arguments are passsed // like in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp) fmdrr d6, r0, r1 // load r0/r1 pair in double register fmdrr d7, r2, r3 // load r2/r3 pair in double register diff --git a/compiler-rt/lib/arm/gtsf2vfp.S b/compiler-rt/lib/arm/gtsf2vfp.S index a4a03c60cc7..53ef2a00f80 100644 --- a/compiler-rt/lib/arm/gtsf2vfp.S +++ b/compiler-rt/lib/arm/gtsf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where single precision arguments are passsed // like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp) fmsr s14, r0 // move from GPR 0 to float register fmsr s15, r1 // move from GPR 1 to float register diff --git a/compiler-rt/lib/arm/ledf2vfp.S b/compiler-rt/lib/arm/ledf2vfp.S index 188dc6a7ebb..327a7d5159f 100644 --- a/compiler-rt/lib/arm/ledf2vfp.S +++ b/compiler-rt/lib/arm/ledf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where double precision arguments are passsed // like in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__ledf2vfp) fmdrr d6, r0, r1 // load r0/r1 pair in double register fmdrr d7, r2, r3 // load r2/r3 pair in double register diff --git a/compiler-rt/lib/arm/lesf2vfp.S b/compiler-rt/lib/arm/lesf2vfp.S index fe3ec646243..b7e05da9b42 100644 --- a/compiler-rt/lib/arm/lesf2vfp.S +++ b/compiler-rt/lib/arm/lesf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where single precision arguments are passsed // like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__lesf2vfp) fmsr s14, r0 // move from GPR 0 to float register fmsr s15, r1 // move from GPR 1 to float register diff --git a/compiler-rt/lib/arm/ltdf2vfp.S b/compiler-rt/lib/arm/ltdf2vfp.S index 15a799b9f10..55dfd808a3b 100644 --- a/compiler-rt/lib/arm/ltdf2vfp.S +++ b/compiler-rt/lib/arm/ltdf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where double precision arguments are passsed // like in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp) fmdrr d6, r0, r1 // load r0/r1 pair in double register fmdrr d7, r2, r3 // load r2/r3 pair in double register diff --git a/compiler-rt/lib/arm/ltsf2vfp.S b/compiler-rt/lib/arm/ltsf2vfp.S index 6ae065872f8..3816a7123a6 100644 --- a/compiler-rt/lib/arm/ltsf2vfp.S +++ b/compiler-rt/lib/arm/ltsf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where single precision arguments are passsed // like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp) fmsr s14, r0 // move from GPR 0 to float register fmsr s15, r1 // move from GPR 1 to float register diff --git a/compiler-rt/lib/arm/muldf3vfp.S b/compiler-rt/lib/arm/muldf3vfp.S index bb0fd43b9a7..cb503d30912 100644 --- a/compiler-rt/lib/arm/muldf3vfp.S +++ b/compiler-rt/lib/arm/muldf3vfp.S @@ -15,6 +15,7 @@ // Multiplies two double precision floating point numbers using the Darwin // calling convention where double arguments are passsed in GPR pairs // + .align 2 DEFINE_COMPILERRT_FUNCTION(__muldf3vfp) fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6 fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7 diff --git a/compiler-rt/lib/arm/mulsf3vfp.S b/compiler-rt/lib/arm/mulsf3vfp.S index 69396a145fb..49b4d1df946 100644 --- a/compiler-rt/lib/arm/mulsf3vfp.S +++ b/compiler-rt/lib/arm/mulsf3vfp.S @@ -15,6 +15,7 @@ // Multiplies two single precision floating point numbers using the Darwin // calling convention where single arguments are passsed like 32-bit ints. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__mulsf3vfp) fmsr s14, r0 // move first param from r0 into float register fmsr s15, r1 // move second param from r1 into float register diff --git a/compiler-rt/lib/arm/nedf2vfp.S b/compiler-rt/lib/arm/nedf2vfp.S index a445cda2fd1..813864e8830 100644 --- a/compiler-rt/lib/arm/nedf2vfp.S +++ b/compiler-rt/lib/arm/nedf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where double precision arguments are passsed // like in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__nedf2vfp) fmdrr d6, r0, r1 // load r0/r1 pair in double register fmdrr d7, r2, r3 // load r2/r3 pair in double register diff --git a/compiler-rt/lib/arm/negdf2vfp.S b/compiler-rt/lib/arm/negdf2vfp.S index 9cbfc6a4d5c..8013975445a 100644 --- a/compiler-rt/lib/arm/negdf2vfp.S +++ b/compiler-rt/lib/arm/negdf2vfp.S @@ -15,6 +15,7 @@ // Returns the negation a double precision floating point numbers using the // Darwin calling convention where double arguments are passsed in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__negdf2vfp) eor r1, r1, #-2147483648 // flip sign bit on double in r0/r1 pair bx lr diff --git a/compiler-rt/lib/arm/negsf2vfp.S b/compiler-rt/lib/arm/negsf2vfp.S index 6d78ef1a348..243c0865c8c 100644 --- a/compiler-rt/lib/arm/negsf2vfp.S +++ b/compiler-rt/lib/arm/negsf2vfp.S @@ -15,6 +15,7 @@ // Returns the negation of a single precision floating point numbers using the // Darwin calling convention where single arguments are passsed like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__negsf2vfp) eor r0, r0, #-2147483648 // flip sign bit on float in r0 bx lr diff --git a/compiler-rt/lib/arm/nesf2vfp.S b/compiler-rt/lib/arm/nesf2vfp.S index 62d80a543f2..d470afa0ef7 100644 --- a/compiler-rt/lib/arm/nesf2vfp.S +++ b/compiler-rt/lib/arm/nesf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where single precision arguments are passsed // like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__nesf2vfp) fmsr s14, r0 // move from GPR 0 to float register fmsr s15, r1 // move from GPR 1 to float register diff --git a/compiler-rt/lib/arm/restore_vfp_d8_d15_regs.S b/compiler-rt/lib/arm/restore_vfp_d8_d15_regs.S index 3c742f69108..25404cd2507 100644 --- a/compiler-rt/lib/arm/restore_vfp_d8_d15_regs.S +++ b/compiler-rt/lib/arm/restore_vfp_d8_d15_regs.S @@ -25,6 +25,7 @@ // // Restore registers d8-d15 from stack // + .align 2 DEFINE_COMPILERRT_PRIVATE_FUNCTION(__restore_vfp_d8_d15_regs) vldmia sp!, {d8-d15} // pop registers d8-d15 off stack bx lr // return to prolog diff --git a/compiler-rt/lib/arm/save_vfp_d8_d15_regs.S b/compiler-rt/lib/arm/save_vfp_d8_d15_regs.S index 97ceac1a5b3..92de61bc6e8 100644 --- a/compiler-rt/lib/arm/save_vfp_d8_d15_regs.S +++ b/compiler-rt/lib/arm/save_vfp_d8_d15_regs.S @@ -25,6 +25,7 @@ // // Save registers d8-d15 onto stack // + .align 2 DEFINE_COMPILERRT_PRIVATE_FUNCTION(__save_vfp_d8_d15_regs) vstmdb sp!, {d8-d15} // push registers d8-d15 onto stack bx lr // return to prolog diff --git a/compiler-rt/lib/arm/subdf3vfp.S b/compiler-rt/lib/arm/subdf3vfp.S index b9cb29e7d76..88416006a06 100644 --- a/compiler-rt/lib/arm/subdf3vfp.S +++ b/compiler-rt/lib/arm/subdf3vfp.S @@ -15,6 +15,7 @@ // Returns difference between two double precision floating point numbers using // the Darwin calling convention where double arguments are passsed in GPR pairs // + .align 2 DEFINE_COMPILERRT_FUNCTION(__subdf3vfp) fmdrr d6, r0, r1 // move first param from r0/r1 pair into d6 fmdrr d7, r2, r3 // move second param from r2/r3 pair into d7 diff --git a/compiler-rt/lib/arm/subsf3vfp.S b/compiler-rt/lib/arm/subsf3vfp.S index b6942bd341a..4ead9c23e71 100644 --- a/compiler-rt/lib/arm/subsf3vfp.S +++ b/compiler-rt/lib/arm/subsf3vfp.S @@ -16,6 +16,7 @@ // using the Darwin calling convention where single arguments are passsed // like 32-bit ints. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__subsf3vfp) fmsr s14, r0 // move first param from r0 into float register fmsr s15, r1 // move second param from r1 into float register diff --git a/compiler-rt/lib/arm/switch16.S b/compiler-rt/lib/arm/switch16.S index 72554010afc..05c7b98b01a 100644 --- a/compiler-rt/lib/arm/switch16.S +++ b/compiler-rt/lib/arm/switch16.S @@ -29,6 +29,7 @@ // The table contains signed 2-byte sized elements which are 1/2 the distance // from lr to the target label. // + .align 2 DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch16) ldrh ip, [lr, #-1] // get first 16-bit word in table cmp r0, ip // compare with index diff --git a/compiler-rt/lib/arm/switch32.S b/compiler-rt/lib/arm/switch32.S index 2a36fef7133..a127cb79f53 100644 --- a/compiler-rt/lib/arm/switch32.S +++ b/compiler-rt/lib/arm/switch32.S @@ -29,6 +29,7 @@ // The table contains signed 4-byte sized elements which are the distance // from lr to the target label. // + .align 2 DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch32) ldr ip, [lr, #-1] // get first 32-bit word in table cmp r0, ip // compare with index diff --git a/compiler-rt/lib/arm/switch8.S b/compiler-rt/lib/arm/switch8.S index 530acfd1d1d..d05f6ac7f06 100644 --- a/compiler-rt/lib/arm/switch8.S +++ b/compiler-rt/lib/arm/switch8.S @@ -29,6 +29,7 @@ // The table contains signed byte sized elements which are 1/2 the distance // from lr to the target label. // + .align 2 DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch8) ldrb ip, [lr, #-1] // get first byte in table cmp r0, ip // signed compare with index diff --git a/compiler-rt/lib/arm/switchu8.S b/compiler-rt/lib/arm/switchu8.S index e161c41a490..faffddb50c1 100644 --- a/compiler-rt/lib/arm/switchu8.S +++ b/compiler-rt/lib/arm/switchu8.S @@ -29,6 +29,7 @@ // The table contains unsigned byte sized elements which are 1/2 the distance // from lr to the target label. // + .align 2 DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switchu8) ldrb ip, [lr, #-1] // get first byte in table cmp r0, ip // compare with index diff --git a/compiler-rt/lib/arm/sync_synchronize.S b/compiler-rt/lib/arm/sync_synchronize.S index 40b584e109f..76fdab1fbdb 100644 --- a/compiler-rt/lib/arm/sync_synchronize.S +++ b/compiler-rt/lib/arm/sync_synchronize.S @@ -21,6 +21,7 @@ #if __APPLE__ + .align 2 DEFINE_COMPILERRT_PRIVATE_FUNCTION(__sync_synchronize) stmfd sp!, {r7, lr} add r7, sp, #0 diff --git a/compiler-rt/lib/arm/truncdfsf2vfp.S b/compiler-rt/lib/arm/truncdfsf2vfp.S index 26f8b82b2c0..5725e25c76a 100644 --- a/compiler-rt/lib/arm/truncdfsf2vfp.S +++ b/compiler-rt/lib/arm/truncdfsf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where a double precision parameter is // passed in a R0/R1 pair and a signle precision result is returned in R0. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__truncdfsf2vfp) fmdrr d7, r0, r1 // load double from r0/r1 pair fcvtsd s15, d7 // convert double to single (trucate precision) diff --git a/compiler-rt/lib/arm/unorddf2vfp.S b/compiler-rt/lib/arm/unorddf2vfp.S index 6b4bcb6f8f0..de00b07feef 100644 --- a/compiler-rt/lib/arm/unorddf2vfp.S +++ b/compiler-rt/lib/arm/unorddf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where double precision arguments are passsed // like in GPR pairs. // + .align 2 DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp) fmdrr d6, r0, r1 // load r0/r1 pair in double register fmdrr d7, r2, r3 // load r2/r3 pair in double register diff --git a/compiler-rt/lib/arm/unordsf2vfp.S b/compiler-rt/lib/arm/unordsf2vfp.S index 811d8cb6f8b..ab291a858da 100644 --- a/compiler-rt/lib/arm/unordsf2vfp.S +++ b/compiler-rt/lib/arm/unordsf2vfp.S @@ -16,6 +16,7 @@ // Uses Darwin calling convention where single precision arguments are passsed // like 32-bit ints // + .align 2 DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp) fmsr s14, r0 // move from GPR 0 to float register fmsr s15, r1 // move from GPR 1 to float register |

