mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-21 03:00:19 +02:00
PPC: Build and pass all tests in powerpcle
* lib/jit_ppc-cpu.c, lib/jit_ppc.c: Correct some endianess issues on the powerpc le backend.
This commit is contained in:
parent
a16adad0fd
commit
af9df5faeb
3 changed files with 13 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2014-12-26 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
|
* lib/jit_ppc-cpu.c, lib/jit_ppc.c: Correct some endianess issues
|
||||||
|
on the powerpc le backend.
|
||||||
|
|
||||||
2014-12-26 Paulo Andrade <pcpa@gnu.org>
|
2014-12-26 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
* lib/jit_ppc-cpu.c: Add mcrxr instruction emulation,
|
* lib/jit_ppc-cpu.c: Add mcrxr instruction emulation,
|
||||||
|
|
|
@ -26,7 +26,11 @@
|
||||||
# define fits_uint32_p(im) 1
|
# define fits_uint32_p(im) 1
|
||||||
# else
|
# else
|
||||||
# define gpr_save_area 144 /* r14~r31 = 18 * 8 */
|
# define gpr_save_area 144 /* r14~r31 = 18 * 8 */
|
||||||
# define params_offset 48
|
# if if ABI_ELFv2
|
||||||
|
# define params_offset 32
|
||||||
|
# else
|
||||||
|
# define params_offset 48
|
||||||
|
# endif
|
||||||
# define can_sign_extend_int_p(im) \
|
# define can_sign_extend_int_p(im) \
|
||||||
(((im) >= 0 && (long)(im) <= 0x7fffffffL) || \
|
(((im) >= 0 && (long)(im) <= 0x7fffffffL) || \
|
||||||
((im) < 0 && (long)(im) >= -0x80000000L))
|
((im) < 0 && (long)(im) >= -0x80000000L))
|
||||||
|
|
|
@ -279,7 +279,7 @@ _jit_arg_f(jit_state_t *_jit)
|
||||||
if (_jitc->function->self.argf < 13)
|
if (_jitc->function->self.argf < 13)
|
||||||
offset = _jitc->function->self.argf++;
|
offset = _jitc->function->self.argf++;
|
||||||
else {
|
else {
|
||||||
#if __WORDSIZE == 32
|
#if __WORDSIZE == 32 || __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
offset = _jitc->function->self.size;
|
offset = _jitc->function->self.size;
|
||||||
#else
|
#else
|
||||||
offset = _jitc->function->self.size + 4;
|
offset = _jitc->function->self.size + 4;
|
||||||
|
@ -502,7 +502,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if __WORDSIZE == 32
|
#if __WORDSIZE == 32 || __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
jit_stxi_f(_jitc->function->call.size + params_offset, JIT_SP, u);
|
jit_stxi_f(_jitc->function->call.size + params_offset, JIT_SP, u);
|
||||||
#else
|
#else
|
||||||
jit_stxi_f(_jitc->function->call.size + params_offset + 4,
|
jit_stxi_f(_jitc->function->call.size + params_offset + 4,
|
||||||
|
@ -549,7 +549,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if __WORDSIZE == 32
|
#if __WORDSIZE == 32 || __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
jit_stxi_f(_jitc->function->call.size + params_offset, JIT_SP, regno);
|
jit_stxi_f(_jitc->function->call.size + params_offset, JIT_SP, regno);
|
||||||
#else
|
#else
|
||||||
jit_stxi_f(_jitc->function->call.size + params_offset + 4,
|
jit_stxi_f(_jitc->function->call.size + params_offset + 4,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue