mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
Merge branch 'fix-rotate-by-zero' into 'master'
Fix undefined behavior in ARMv7 assembler See merge request wingo/lightening!4
This commit is contained in:
commit
921f13a03b
1 changed files with 10 additions and 3 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2017, 2019 Free Software Foundation, Inc.
|
* Copyright (C) 2012-2017,2019-2020 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This file is part of GNU lightning.
|
* This file is part of GNU lightning.
|
||||||
*
|
*
|
||||||
|
@ -195,8 +195,15 @@ emit_wide_thumb(jit_state_t *_jit, uint32_t inst)
|
||||||
emit_u16_with_pool(_jit, inst & 0xffff);
|
emit_u16_with_pool(_jit, inst & 0xffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* from binutils */
|
static uint32_t
|
||||||
# define rotate_left(v, n) (v << n | v >> (32 - n))
|
rotate_left(uint32_t v, uint32_t n) {
|
||||||
|
if (n == 0) {
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
ASSERT(n < 32);
|
||||||
|
return (v << n | v >> (32 - n));
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
encode_arm_immediate(unsigned int v)
|
encode_arm_immediate(unsigned int v)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue