[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/16763] New: RL78 - Ranges of relative branches are not checked
From: |
peper03 at yahoo dot com |
Subject: |
[Bug gas/16763] New: RL78 - Ranges of relative branches are not checked correctly |
Date: |
Thu, 27 Mar 2014 09:50:11 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=16763
Bug ID: 16763
Summary: RL78 - Ranges of relative branches are not checked
correctly
Product: binutils
Version: 2.24
Status: NEW
Severity: critical
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: peper03 at yahoo dot com
gas quietly allows out-of-range relative branches. The RL78 processors allow
8-bit and 16-bit relative branches (so -128/+127 or -32768/+32767 bytes from
PC) but gas seems to be calculating the distance using unsigned values so it
will allow a forward jump of, say, 200 bytes without complaint that actually
ends up as a backwards jump of 56 bytes (i.e. -56).
A build-time error only occurs once the distance is too large to fit in an 8 or
16-bit value (as appropriate).
Backwards jumps are left for the linker to fix-up, so there's no error until
the linker runs (but at least there *is* a build-time error).
.list
.global _branchTest8
.global _branchTest16
_branchTest8:
br $label8
.zero 200
br $_branchTest8
label8:
ret
_branchTest16:
br $label16
.zero 32769
br $_branchTest16
label16:
ret
.end
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/16763] New: RL78 - Ranges of relative branches are not checked correctly,
peper03 at yahoo dot com <=