Index: third_party/yasm/patched-yasm/libyasm/bc-data.c |
=================================================================== |
--- third_party/yasm/patched-yasm/libyasm/bc-data.c (revision 165590) |
+++ third_party/yasm/patched-yasm/libyasm/bc-data.c (working copy) |
@@ -25,7 +25,6 @@ |
* POSSIBILITY OF SUCH DAMAGE. |
*/ |
#include "util.h" |
-/*@unused@*/ RCSID("$Id: bc-data.c 2133 2008-10-07 05:59:29Z peter $"); |
#include "libyasm-stdint.h" |
#include "coretype.h" |
@@ -70,7 +69,8 @@ |
static int bc_data_item_size(yasm_bytecode *bc); |
static int bc_data_calc_len(yasm_bytecode *bc, yasm_bc_add_span_func add_span, |
void *add_span_data); |
-static int bc_data_tobytes(yasm_bytecode *bc, unsigned char **bufp, void *d, |
+static int bc_data_tobytes(yasm_bytecode *bc, unsigned char **bufp, |
+ unsigned char *bufstart, void *d, |
yasm_output_value_func output_value, |
/*@null@*/ yasm_output_reloc_func output_reloc); |
@@ -203,13 +203,13 @@ |
} |
static int |
-bc_data_tobytes(yasm_bytecode *bc, unsigned char **bufp, void *d, |
+bc_data_tobytes(yasm_bytecode *bc, unsigned char **bufp, |
+ unsigned char *bufstart, void *d, |
yasm_output_value_func output_value, |
/*@unused@*/ yasm_output_reloc_func output_reloc) |
{ |
bytecode_data *bc_data = (bytecode_data *)bc->contents; |
yasm_dataval *dv; |
- unsigned char *bufp_orig = *bufp; |
yasm_intnum *intn; |
unsigned int val_len; |
unsigned long multiple, i; |
@@ -224,7 +224,7 @@ |
val_len = dv->data.val.size/8; |
for (i=0; i<multiple; i++) { |
if (output_value(&dv->data.val, *bufp, val_len, |
- (unsigned long)(*bufp-bufp_orig), bc, 1, |
+ (unsigned long)(*bufp-bufstart), bc, 1, |
d)) |
return 1; |
*bufp += val_len; |
@@ -480,6 +480,14 @@ |
return retval; |
} |
+yasm_value * |
+yasm_dv_get_value(yasm_dataval *dv) |
+{ |
+ if (dv->type != DV_VALUE) |
+ return NULL; |
+ return &dv->data.val; |
+} |
+ |
void |
yasm_dv_set_multiple(yasm_dataval *dv, yasm_expr *e) |
{ |