On Apr 20, 2021, at 9:11 AM, Gabriel Paubert 
<paub...@iram.es<mailto:paub...@iram.es>> wrote:

(lldb) di -s 0x0000000103d60000 -c 10
libgambit.dylib`___SCMOBJ_to_NONNULLSTRING:
   0x103d60000 <+1504>: jl     0x103d60026               ; <+1542> at 
c_intf.c:3282:9
   0x103d60002 <+1506>: orb    %al, 0x31(%rbp)
   0x103d60005 <+1509>: shlb   %cl, 0x2e(%rsi)

Does GCC ever generate this last instruction (a variable shift of a
byte in memory!)? Even the next to last (register to memory) is only
generated infrequently.

I submitted https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100152

You may be correct, but it appears that the “offending" instruction is

->  0x103d60010 <+1520>: movl   (%rbp,%r10,4), %esi

Brad

Reply via email to