-OnP: Disable Peephole Optimization

Group

OPTIMIZATIONS

Scope

Function

Syntax
  -OnP[=<option Char>{<option Char>}]
  
  
Arguments

Use one of the following arguments for <option Char>:

a: Disable peephole combine AI(S|X) optimization

b: Disable peephole handle constant argument optimization

c: Disable peephole PSH/PUL instead AIS optimization

d: Disable peephole combine bit operations optimization

e: Disable peephole combine bit set/clr optimization

f: Disable peephole PSH PUL optimization

g: Disable peephole RTS RTS optimization

h: Disable peephole unused loads optimization

i: Disable peephole unused stores optimization

j: Disable peephole unused compares optimization

k: Disable peephole unnecessary tests optimization

l: Disable peephole unnecessary transfers optimization

m: Disable peephole JSR to JMP optimization

n: Disable peephole CMP #1 optimization

o: Disable peephole simple inline assembler optimizations

x: Disable peephole load immediate to HX [HCS08 only]

Default

None

Defines

None

Pragmas

None

Description

If -OnP is specified, the Compiler disables the whole peephole optimizer. To disable only a single peephole optimization, use the optional syntax -OnP=<char>. For example:

Suboption -OnP=m (Disable peephole JSR to JMP optimization)

The compiler replaces a JSR- RTS sequence with a single JMP instruction. This saves single-byte code and 2-byte stack spaces. To avoid this optimization, use the -onp=m option.

With -onp=m:

    ...

  
    JSR   Subroutine

  
    RTS

  

Without -onp=m:

    ...

  
    JMP   Subroutine

  
Example
  -OnP=m
  
  

Disables the peephole optimization m