• Masahiro Yamada's avatar
    xlat_tables_v2: use get_current_el_maybe_constant() in is_dcache_enabled() · 3cde15fa
    Masahiro Yamada authored
    
    
    Using get_current_el_maybe_constant() produces more optimized code
    because in most cases, we know the exception level at build-time.
    For example, BL31 runs at EL3, so unneeded code will be trimmed.
    
    [before]
    
    0000000000000000 <is_dcache_enabled>:
       0:   d5384240        mrs     x0, currentel
       4:   53020c00        ubfx    w0, w0, #2, #2
       8:   7100041f        cmp     w0, #0x1
       c:   54000081        b.ne    1c <is_dcache_enabled+0x1c>  // b.any
      10:   d5381000        mrs     x0, sctlr_el1
      14:   53020800        ubfx    w0, w0, #2, #1
      18:   d65f03c0        ret
      1c:   7100081f        cmp     w0, #0x2
      20:   54000061        b.ne    2c <is_dcache_enabled+0x2c>  // b.any
      24:   d53c1000        mrs     x0, sctlr_el2
      28:   17fffffb        b       14 <is_dcache_enabled+0x14>
      2c:   d53e1000        mrs     x0, sctlr_el3
      30:   17fffff9        b       14 <is_dcache_enabled+0x14>
    
    [after]
    
    0000000000000000 <is_dcache_enabled>:
       0:   d53e1000        mrs     x0, sctlr_el3
       4:   53020800        ubfx    w0, w0, #2, #1
       8:   d65f03c0        ret
    
    Change-Id: I3698fae9b517022ff9fbfd4cad3a320c6e137e10
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    3cde15fa
xlat_tables_arch.c 8.06 KB